summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-07-19 10:24:10 -0700
committerKaz Kylheku <kaz@kylheku.com>2014-07-19 10:24:10 -0700
commit53fb3e6b09dbe62d66c516870855ba448f56c4b0 (patch)
tree6489c60e0517780cdc95252462b9f4865a7f5514 /lib.c
parent5b0a9e5fe1032653c745e56a2f39561a1d7b7661 (diff)
downloadtxr-53fb3e6b09dbe62d66c516870855ba448f56c4b0.tar.gz
txr-53fb3e6b09dbe62d66c516870855ba448f56c4b0.tar.bz2
txr-53fb3e6b09dbe62d66c516870855ba448f56c4b0.zip
* eval.c (mapdov): New function.
(eval_init): Register mapdo intrinsic. * lib.c (mapdo): New function. * lib.h (mapdo): Declared. * txr.1: Documented mapdo. Documented zero-argument case for mapcar, mapcar*, mappend and mappend*.
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index 9289250a..0f705211 100644
--- a/lib.c
+++ b/lib.c
@@ -4979,6 +4979,16 @@ val mappend(val fun, val list)
return make_like(out, list_orig);
}
+val mapdo(val fun, val list)
+{
+ list = nullify(list);
+
+ for (; list; list = cdr(list))
+ funcall1(fun, car(list));
+
+ return nil;
+}
+
static val lazy_interpose_func(val env, val lcons)
{
cons_bind (sep, list, env);