diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-02-02 15:35:18 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-02-02 15:37:55 -0800 |
commit | a5c639d6bbb5c2bb6720fa69086f9187452192f6 (patch) | |
tree | dca305b48314270bb35f567c956c8f68564e0f6f /eval.c | |
parent | 1d6ad5892120dd0ce3f1947ee87fe343fc932f0d (diff) | |
download | txr-a5c639d6bbb5c2bb6720fa69086f9187452192f6.tar.gz txr-a5c639d6bbb5c2bb6720fa69086f9187452192f6.tar.bz2 txr-a5c639d6bbb5c2bb6720fa69086f9187452192f6.zip |
Adding list* since we get it "for free" thanks to the
new helper function that supports apply.
* eval.c (list_star_intrinsic): New static function.
(eval_init): Register list_star_intrinsic as list*.
* txr.1: Document list*.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -435,6 +435,11 @@ static val apply_intrinsic(val fun, val args) return apply(fun, apply_frob_args(args), cons(apply_s, nil)); } +static val list_star_intrinsic(val args) +{ + return apply_frob_args(args); +} + static val do_eval(val form, val env, val ctx_form, val (*lookup)(val env, val sym)); @@ -2380,6 +2385,7 @@ void eval_init(void) reg_fun(append_s, func_n0v(appendv)); reg_fun(intern(lit("append*"), user_package), func_n0v(lazy_appendv)); reg_fun(list_s, func_n0v(identity)); + reg_fun(intern(lit("list*"), user_package), func_n1v(list_star_intrinsic)); reg_fun(intern(lit("identity"), user_package), identity_f); reg_fun(intern(lit("typeof"), user_package), func_n1(typeof)); |