There was a discussion in irc:#picolisp about the ((if test fun1 fun2) arg) syntax, and also about the various "empty" functions in picolisp. Here's a list of them:
| evaluate | return | definition | name | |----------+--------+--------------------+-------| | none | 1 | '(X (car X)) | | | none | 2 | '(X (cadr X)) | | | none | last | '(X (last X)) | | | none | all | '(X X) | quote | | none | NIL | '(NIL) | | | none | T | '(NIL T) | | | all | 1 | '((X . @) X) | prog1 | | all | 2 | '((Y X . @) X) | prog2 | | all | last | '(@ (last (rest))) | prog | | all | all | '(@ (rest)) | list | | all | NIL | '(@ NIL) | nil | | all | T | '(@ T) | t | Btw, what other programming languages do you know that support the ((return function) arg) construct with (function dependent) run-time decision of whether to evaluate the arguments? /meingbg