Hi Ana, > thank you for your patience in answering. will study this one piece at > a time and get back with more questions. :)
OK, any time :) BTW, we looked at your page http://nybl.info/doku.php?id=picolisppage and stumbled across some incorrectnesses in "seven primitive functions of lisp": (quote a) means 'do not evaluate a ' In case of PicoLisp, this measn "do not evaluate (a)". If you want to quote the symbol 'a', you must write (quote . a) or 'a (eq 'a 'b) checks for equality of the atoms 'eq' does not exist in PicoLisp. The equivalent function is '=='. Both 'eq' in other Lisps, and '==' in PicoLisp, do _not_ necessarily check the equality of atoms, but of any data type. The point is that the check is for pointer-equivalence (as opposed to '=' in PicoLisp (or 'equal' in other Lisps), which checks for structure-equality). car and cdr both expect lists This is correct for other Lisps. In addition, PicoLisp allows 'car' to be applied to a symbol. In that case it returns the symbol's value. (cons x y) expects y to be a list. creates a list out of the two 'y' does not need to be a list (in any Lisp I know). Both 'x' and 'y' can be arbitrary data, and 'cons' doesn't create a list of them but a "cons pair": (cons 3 4) -> (3 . 4) (cond (if1 func1)…) looks for an if_n that's true and gladly executes func_n This is correct, but a bit misleading. The body of a 'cond' clause is not a function, but a list of expressions: (cond ((condition1) (expr1) (expr2) ...) ((condition2) (expr3) (expr4) ...) ... ) Cheers, - Alex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe