summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2025-03-28 22:24:45 -0700
committerKaz Kylheku <kaz@kylheku.com>2025-03-28 22:24:45 -0700
commit128e59c15912c1a598616bf7c091043f95b6984c (patch)
tree5b2b6d426960364e95fcb37672c1d85afe179a88 /eval.c
parent09881b5025ef797821d9c6f238b332318795fd0c (diff)
downloadtxr-128e59c15912c1a598616bf7c091043f95b6984c.tar.gz
txr-128e59c15912c1a598616bf7c091043f95b6984c.tar.bz2
txr-128e59c15912c1a598616bf7c091043f95b6984c.zip
New function keep: generalized keepqual.
* eval.c (eval_init): Register keep intrinsic. * lib.[ch] (keep): New function. * stdlib/compiler.tl (compiler comp-fun-form): Transform two argument keep to keepqual. * txr.1: Documented.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 11545a12..93576d00 100644
--- a/eval.c
+++ b/eval.c
@@ -7490,6 +7490,7 @@ void eval_init(void)
reg_fun(intern(lit("keepqual"), user_package), func_n3o(keepqual, 2));
reg_fun(intern(lit("keep-if"), user_package), func_n4o(keep_if, 2));
reg_fun(intern(lit("keep-keys-if"), user_package), func_n4o(keep_keys_if, 2));
+ reg_fun(intern(lit("keep"), user_package), func_n5o(keep, 2));
reg_fun(intern(lit("separate"), user_package), func_n3o(separate, 2));
reg_fun(intern(lit("separate-keys"), user_package), func_n3o(separate_keys, 2));
reg_fun(intern(lit("remq*"), user_package), func_n2(remq_lazy));