diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2011-12-03 21:28:47 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2011-12-03 21:28:47 -0800 |
commit | 336071aa972798af0252345d90e0a8d4acdc1e00 (patch) | |
tree | cf57a1f13fc6cc263717f9645a1c06d30d1a88a2 /eval.c | |
parent | 252111c171f300a7990bdc79f45dbe55aba0f36b (diff) | |
download | txr-336071aa972798af0252345d90e0a8d4acdc1e00.tar.gz txr-336071aa972798af0252345d90e0a8d4acdc1e00.tar.bz2 txr-336071aa972798af0252345d90e0a8d4acdc1e00.zip |
Expose lazy lists in TXR Lisp.
* eval.c (eval_init): New intrinsic functions.
* lib.c (rplaca, rplacd, lcons_fun): New functions.
(make_lazycons): Renamed to make_lazy_cons, relocated
and turned into external function.
(lazy_stream_func, lazy_stream_cons): Follow rename
of make_lazycons.
* lib.h (rplaca, rplacd, make_lazy_cons, lcons_fun):
Declared.
* txr.1: Stub sections created.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -1029,8 +1029,12 @@ void eval_init(void) sethash(op_table, return_from_s, cptr((mem_t *) op_return_from)); reg_fun(cons_s, func_n2(cons)); + reg_fun(intern(lit("make-lazy-cons"), user_package), func_n1(make_lazy_cons)); + reg_fun(intern(lit("lcons-fun"), user_package), func_n1(lcons_fun)); reg_fun(car_s, func_n1(car)); reg_fun(cdr_s, func_n1(car)); + reg_fun(intern(lit("rplaca"), user_package), func_n2(rplaca)); + reg_fun(intern(lit("rplacd"), user_package), func_n2(rplacd)); reg_fun(intern(lit("first"), user_package), func_n1(car)); reg_fun(intern(lit("rest"), user_package), func_n1(cdr)); reg_fun(append_s, func_n0v(appendv)); |