Groups Images Directory Web
Recently Visited Groups | Help | Sign in
Google Groups Home
Group info
Members: 210
Language: English
Group categories:
Science and Technology
Computers
Schools and Universities
More group info »
Qi Core and ports    

Functions that is in the core

QUIT MAKE-ARRAY AREF LISTP SQRT RANDOM ROUND EQUALP DEFSTRUCT STRING-EQUAL SYMBOL-NAME DELETE-FILE TAGBODY RETURN MAKUNBOUND SYMBOL-VALUE DEFVAR MAKE-HASH-TABLE GETHASH REMHASH FMAKUNBOUND HANDLER-CASE GO SYMBOL-FUNCTION READ-CHAR TERPRI PROGN SLEEP GENSYM PROG + PROGV FORCE-OUTPUT APPLY STRING BOUNDP DEFMACRO EVAL SETQ SETF CDR BLOCK ERROR LET* COERCE FORMAT NOT SYMBOLP LET * RETURN-FROM FUNCTION LAMBDA QUOTE LIST IF FUNCALL CONS EQ - DEFUN OR AND CONSP CAR EQL

Can be combined ins some intelligent way

FLOATP REALP RATIONALP COMPLEXP WITH-OPEN-FILE MACRO-FUNCTION INTEGERP FBOUNDP ZEROP ATOM CHAR-EQUAL EQUAL STRINGP NUMBERP CHARACTERP

can be expressed by core functions

SET-DIFFERENCE ASSOC GENTEMP SET PPRINT PUSH UPPER-CASE-P REMOVE-IF NREVERSE MEMBER BUTLAST REMOVE NTH LOOP THE Y-OR-N-P INCF DECF CDDR MAPC PUSHNEW GET REVERSE LIST-LENGTH APPEND CDDDR LAST COND FOURTH SUBST THIRD SECOND CAAR FIRST MAPCAR REST LENGTH CADR NULL

extra functionality

EXPORT PROCLAIM SAVE-LISP-AND-DIE LISP-IMPLEMENTATION-TYPE SHADOWING-IMPORT DEFCONSTANT MAKE-PACKAGE COMPILE-FILE TIME USE-PACKAGE COMPILED-FUNCTION-P GET-INTERNAL-RUN-TIME IN-PACKAGE COMPILE SLEEP

To be classified

VAR CHAR NAMESTRING WRITE-STRING DRIBBLE PROBE-FILE CHARACTER FUNCTION-LAMBDA-EXPRESSION READTABLE-CASE DEFPACKAGE LOAD PRINC READ-FROM-STRING SYMBOL-PLIST

Extra features turn on/off

GO TAGBODY RETURN

Recode to remove dependencies

DO

Discussions

* FORMAT and LOOP

these are advanced macros, the question here is if we need to port those macros to the core qi?

* GO and TAGBODY

Is gotos supported in python? Do we have these constructs in clojure?

* Typesystem needs to be molded

* (SETF (GETHASH ...) ...)

clojure code nd notes

LISP            clojure
===============================
QUIT            (System/exit 0)

MAKE-ARRAY      (vector)  Coded a version for clojure
AREF            (vector nth vector?) 

CDR             rest
LISTP           list? [] ~ T  
CONSP           as list? but [] ~ F
CAR             first
AND             and, short circuiting ok
OR              or , short circuiting ok
NOT             not
LIST            list
CONS            cons

IF              if , use Qi code here that translate fairly directly 
                be careful with library functions and generated lisps a false is not needed

QUOTE           quote
SYMBOL-NAME     name
SYMBOL-VALUE    | eval, fn? 
SYMBOL-FUNCTION |
GENSYM          gensym
MAKUNBOUND      |(ns-unmap 'user 's)
FMAKUNBOUND     |
BOUNDP 
SYMBOLP         symbol?

SQRT 
RANDOM          rand-int
ROUND 

number?         number?

LAMBDA 
FUNCALL  
DEFUN 
APPLY 
FUNCTION 

DEFMACRO 

BLOCK           | These can be hadnled using recure mechanisms
RETURN-FROM     | Also it looks like  just python return statement would suffice

COERCE          | (into (list) "a") (apply str (list \a))
FORMAT          | Coded a version, format need a few functions defined format is a clojure 
                  primitive that can used for representing numbers
                  (str element) makes a computer string out of element

EQUALP          | =
STRING-EQUAL    |
EQ              |
EQL             |

READ-CHAR 
DELETE-FILE    
TERPRI 
FORCE-OUTPUT 

DEFSTRUCT 
DEFVAR 

MAKE-HASH-TABLE 
GETHASH 
REMHASH 

HANDLER-CASE 
ERROR 

PROGN            do
PROG 
PROG2
PROGV             SET and MAKUNBOUND

LET*             | local variables, LET and LET* seams to be used as LET* 
LET              | (let [a 1 b 2] code)

SETQ 
SETF READTABLE-CASE, GETHASH, AREF

EVAL             eval

=================================
These translates just as they are
=================================
+ 
* 
- 
/
<
>
<=
>=
Version: 
Latest 3 messages about this page (25 total) - view full discussion
14 Aug 2009 by Mark Tarver
looks fine.
13 Aug 2009 by snorgers
added notes on porting

Click on http://groups.google.co.uk/group/Qilang/web/qi-core-and-ports
- or copy & paste it into your browser's address bar if that doesn't
work.
7 Aug 2009 by snorgers
In the list of LISP symbols I've coded most of the dependent
functions. Now there
are a few math functions that I put in the core, that is practically
always
reachable like RANDOM and SQRT. So I keep them there, for now.

Let's head out to the basic types like number string and so on. I will
digest think about this now, Mark any comments?
22 more messages »
Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google