altos/lisp: Switch to scheme formal syntax for varargs
authorKeith Packard <keithp@keithp.com>
Mon, 4 Dec 2017 03:54:18 +0000 (19:54 -0800)
committerKeith Packard <keithp@keithp.com>
Mon, 4 Dec 2017 03:54:18 +0000 (19:54 -0800)
commit9dbc686ad7d3289dc0f9bcf4a973f71100e02ded
treec64a5e1c981ef3fb6995d361f4b65c1aa8a0f51a
parenta1d013ab8cc508d4e17ae8876bc5465d1a2dfc1e
altos/lisp: Switch to scheme formal syntax for varargs

Scheme uses bare symbols to indicate a varargs parameter; any bare
(i.e., not wrapped in a cons cell) parameter will get the 'rest' of
the parameter list. This works for lambdas, nlambdas and macros. As a
result, the 'lexpr' form has been removed as it is equivalent to a
lambda with a varargs formal.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/lisp/ao_lisp.h
src/lisp/ao_lisp_builtin.c
src/lisp/ao_lisp_builtin.txt
src/lisp/ao_lisp_const.lisp
src/lisp/ao_lisp_eval.c
src/lisp/ao_lisp_lambda.c
src/lisp/ao_lisp_make_builtin
src/lisp/ao_lisp_make_const.c