summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--eval.c3
-rw-r--r--txr.118
3 files changed, 27 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index dac505f0..7d0141fa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2012-03-03 Kaz Kylheku <kaz@kylheku.com>
+ * eval.c (eval_init): Expose remq, remql and remqual.
+
+ * txr.1: Documented.
+
+2012-03-03 Kaz Kylheku <kaz@kylheku.com>
+
* lib.c (sub_str): Removed second check for lazy string that
can't ever come out true.
diff --git a/eval.c b/eval.c
index 532b63f0..fb4ca4ce 100644
--- a/eval.c
+++ b/eval.c
@@ -2127,6 +2127,9 @@ void eval_init(void)
reg_fun(intern(lit("memq"), user_package), func_n2(memq));
reg_fun(intern(lit("memql"), user_package), func_n2(memql));
reg_fun(intern(lit("memqual"), user_package), func_n2(memqual));
+ reg_fun(intern(lit("remq"), user_package), func_n2(remq));
+ reg_fun(intern(lit("remql"), user_package), func_n2(remql));
+ reg_fun(intern(lit("remqual"), user_package), func_n2(remqual));
reg_fun(intern(lit("tree-find"), user_package), func_n3o(tree_find, 2));
reg_fun(intern(lit("some"), user_package), func_n3o(some_satisfy, 2));
reg_fun(intern(lit("all"), user_package), func_n3o(all_satisfy, 2));
diff --git a/txr.1 b/txr.1
index d2845dea..ef0fd91d 100644
--- a/txr.1
+++ b/txr.1
@@ -6355,6 +6355,24 @@ If no such element found, nil is returned.
Otherwise, that tail of the list is returned whose first element
is the matching object.
+.SS Functions remq, remql and remqual
+
+Syntax:
+
+ (remq <object> <list>)
+ (remql <object> <list>)
+ (remqual <object> <list>)
+
+.TP
+Description
+
+The remq, remql and remqual functions produce a new list based on <list>,
+removing the the items which are eq, eql or equal to <object>.
+
+The input <list> is unmodified, but the returned list may share substructure
+with it. If no items are removed, it is possible that the return value
+is <list> itself.
+
.SS Function tree-find
.TP