summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2024-07-23 19:01:40 -0700
committerKaz Kylheku <kaz@kylheku.com>2024-07-23 19:01:40 -0700
commitf768b1250e5118be9b749372fffc9ea3d9d6fae7 (patch)
tree955f3fd833ec2336739207b8b8c79f8fba574433 /eval.c
parentd5a9cacf83e15dd84928a23062b9bac06d06849b (diff)
downloadtxr-f768b1250e5118be9b749372fffc9ea3d9d6fae7.tar.gz
txr-f768b1250e5118be9b749372fffc9ea3d9d6fae7.tar.bz2
txr-f768b1250e5118be9b749372fffc9ea3d9d6fae7.zip
New function: seq-like.
* eval.c (zip_fun): Renamed to seq_like. (zipv): Follow rename of zip_fun. (eval_init): Register seq-like intrinsic. * tests/seq.tl: Some tests for make-like and seq-like, revealing a difference: make-like needs to be rewritten to use seq_build. * txr.1: Documented.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/eval.c b/eval.c
index e8d57ff0..91220930 100644
--- a/eval.c
+++ b/eval.c
@@ -5864,7 +5864,7 @@ static val mapdov(val fun, varg lists)
return map_common(lit("mapdo"), fun, lists, 0, mapdo);
}
-static val zip_fun(val ziparg0, varg args)
+static val seq_like(val ziparg0, varg args)
{
seq_build_t bu;
cnum index = 0;
@@ -5898,7 +5898,7 @@ static val zipv(varg zipargs)
func = func_n0v(vectorv);
break;
default:
- func = func_f0v(ziparg0, zip_fun);
+ func = func_f0v(ziparg0, seq_like);
break;
}
@@ -7813,6 +7813,7 @@ void eval_init(void)
reg_fun(intern(lit("list-seq"), user_package), func_n1(list_seq));
reg_fun(intern(lit("vec-seq"), user_package), func_n1(vec_seq));
reg_fun(intern(lit("str-seq"), user_package), func_n1(str_seq));
+ reg_fun(intern(lit("seq-like"), user_package), func_n1v(seq_like));
reg_fun(intern(lit("length"), user_package), length_f);
reg_fun(intern(lit("len"), user_package), length_f);
reg_fun(length_lt_s, func_n2(length_lt));