diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-03-11 22:11:29 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-03-11 22:11:29 -0700 |
commit | 4098bdfbe0406bfacfc8a1b46bfad38964cfd2df (patch) | |
tree | 0e758878ad74a2925125fa48ed59a013203ed7ed /eval.c | |
parent | 5e1107b94d8dca026a53cf8d8ab6f53d4a01cdac (diff) | |
download | txr-4098bdfbe0406bfacfc8a1b46bfad38964cfd2df.tar.gz txr-4098bdfbe0406bfacfc8a1b46bfad38964cfd2df.tar.bz2 txr-4098bdfbe0406bfacfc8a1b46bfad38964cfd2df.zip |
New sequence iterator object and functions.
* eval.c (eval_init): Register seq-begin, seq-next and
seq-reset.
* lib.c (seq_iter_s): New symbol variable.
(seq_iter_mark): New static function.
(seq_iter_ops): New static structure.
(seq_begin, seq_next, seq_reset): New functions.
(obj_init): Intern seq-iter symbol, used as class name for
iterators.
* lib.h (seq_iter_s, seq_begin, seq_next, seq_reset):
Declared.
* txr.1: Documented.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -6858,6 +6858,9 @@ void eval_init(void) reg_fun(intern(lit("where"), user_package), func_n2(where)); reg_fun(intern(lit("select"), user_package), func_n2(sel)); reg_fun(intern(lit("relate"), user_package), func_n3o(relate, 2)); + reg_fun(intern(lit("seq-begin"), user_package), func_n1(seq_begin)); + reg_fun(intern(lit("seq-next"), user_package), func_n2(seq_next)); + reg_fun(intern(lit("seq-reset"), user_package), func_n2(seq_reset)); reg_fun(intern(lit("rcons"), user_package), func_n2(rcons)); reg_fun(intern(lit("rangep"), user_package), func_n1(rangep)); |