diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2025-03-28 22:24:45 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2025-03-28 22:24:45 -0700 |
commit | 128e59c15912c1a598616bf7c091043f95b6984c (patch) | |
tree | 5b2b6d426960364e95fcb37672c1d85afe179a88 /lib.c | |
parent | 09881b5025ef797821d9c6f238b332318795fd0c (diff) | |
download | txr-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 'lib.c')
-rw-r--r-- | lib.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -3616,6 +3616,12 @@ val keep_keys_if(val pred, val seq, val keyfun_in, val mapfun_in) return rem_if_impl(notf(pred), seq, keyfun_in, mapfun, lit("keep-keys-if")); } +val keep(val obj, val seq, val testfun_in, val keyfun_in, val mapfun_in) +{ + val testfun = default_arg(testfun_in, equal_f); + return remov(obj, seq, notf(testfun), keyfun_in, mapfun_in); +} + val separate(val pred, val seq, val keyfun_in) { val self = lit("separate"); |