From 4098bdfbe0406bfacfc8a1b46bfad38964cfd2df Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 11 Mar 2019 22:11:29 -0700 Subject: 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. --- eval.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'eval.c') diff --git a/eval.c b/eval.c index a3b593ef..b628257d 100644 --- a/eval.c +++ b/eval.c @@ -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)); -- cgit v1.2.3