diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2024-07-23 19:01:40 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2024-07-23 19:01:40 -0700 |
commit | f768b1250e5118be9b749372fffc9ea3d9d6fae7 (patch) | |
tree | 955f3fd833ec2336739207b8b8c79f8fba574433 /eval.c | |
parent | d5a9cacf83e15dd84928a23062b9bac06d06849b (diff) | |
download | txr-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.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -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)); |