diff options
author | Keith Packard <keithp@keithp.com> | 2017-12-03 19:54:18 -0800 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2017-12-03 19:54:18 -0800 |
commit | 9dbc686ad7d3289dc0f9bcf4a973f71100e02ded (patch) | |
tree | c64a5e1c981ef3fb6995d361f4b65c1aa8a0f51a /src/lisp/ao_lisp_builtin.txt | |
parent | a1d013ab8cc508d4e17ae8876bc5465d1a2dfc1e (diff) |
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>
Diffstat (limited to 'src/lisp/ao_lisp_builtin.txt')
-rw-r--r-- | src/lisp/ao_lisp_builtin.txt | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/src/lisp/ao_lisp_builtin.txt b/src/lisp/ao_lisp_builtin.txt index abed7afe..cb65e252 100644 --- a/src/lisp/ao_lisp_builtin.txt +++ b/src/lisp/ao_lisp_builtin.txt @@ -1,7 +1,6 @@ f_lambda eval f_lambda read nlambda lambda -nlambda lexpr nlambda nlambda nlambda macro f_lambda car @@ -19,25 +18,25 @@ f_lambda def nlambda cond nlambda begin nlambda while -f_lexpr write -f_lexpr display -f_lexpr plus + -f_lexpr minus - -f_lexpr times * -f_lexpr divide / -f_lexpr modulo modulo % -f_lexpr remainder -f_lexpr quotient -f_lexpr equal = eq? eqv? -f_lexpr less < -f_lexpr greater > -f_lexpr less_equal <= -f_lexpr greater_equal >= +f_lambda write +f_lambda display +f_lambda plus + +f_lambda minus - +f_lambda times * +f_lambda divide / +f_lambda modulo modulo % +f_lambda remainder +f_lambda quotient +f_lambda equal = eq? eqv? +f_lambda less < +f_lambda greater > +f_lambda less_equal <= +f_lambda greater_equal >= f_lambda list_to_string list->string f_lambda string_to_list string->list f_lambda flush_output flush-output f_lambda delay -f_lexpr led +f_lambda led f_lambda save f_lambda restore f_lambda call_cc call-with-current-continuation call/cc @@ -56,7 +55,7 @@ f_lambda symbol_to_string symbol->string f_lambda string_to_symbol string->symbol f_lambda stringp string? f_lambda procedurep procedure? -lexpr apply +lambda apply f_lambda read_char read-char f_lambda write_char write-char f_lambda exit |