diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2011-12-25 00:42:19 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2011-12-25 00:42:19 -0800 |
commit | 894aec019d3ce82f861a5777236ac079c2f2388d (patch) | |
tree | a4e4414899200f6d66e88fa77e1cbffd5ffba804 /eval.c | |
parent | 1c8251aae0294881d0dc9fcdffeb2f86040ee24e (diff) | |
download | txr-894aec019d3ce82f861a5777236ac079c2f2388d.tar.gz txr-894aec019d3ce82f861a5777236ac079c2f2388d.tar.bz2 txr-894aec019d3ce82f861a5777236ac079c2f2388d.zip |
* eval.c (eval_init): New function interned.
* lib.c:x (lazy_flatten_scan, lazy_flatten_func): New static functions.
(lazy_flatten): New function.
* lib.h (lazy_flatten): Declared.
* match.c (v_next): Use lazy_flatten instead of flatten for
processing a :list source. This means that @(next :list ...)
can be used to process infinite lazy lists.
* txr.1: Documented lazy-flatten.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -1248,6 +1248,7 @@ void eval_init(void) reg_fun(intern(lit("reverse"), user_package), func_n1(reverse)); reg_fun(intern(lit("ldiff"), user_package), func_n2(ldiff)); reg_fun(intern(lit("flatten"), user_package), func_n1(flatten)); + reg_fun(intern(lit("lazy-flatten"), user_package), func_n1(lazy_flatten)); reg_fun(intern(lit("memq"), user_package), func_n2(memq)); reg_fun(intern(lit("memqual"), user_package), func_n2(memqual)); reg_fun(intern(lit("tree-find"), user_package), func_n3(tree_find)); |