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

Reply via email to