summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-07-20 11:06:17 -0700
committerKaz Kylheku <kaz@kylheku.com>2014-07-20 11:06:17 -0700
commit0d29bebdc195800fc416d6bea57d84140d54e7a3 (patch)
tree22808d93cd773cb4158c78bcb47b23da87d55700 /lib.c
parent7da23010b2afbaae4dc4b8f01d1f8950e2c878be (diff)
downloadtxr-0d29bebdc195800fc416d6bea57d84140d54e7a3.tar.gz
txr-0d29bebdc195800fc416d6bea57d84140d54e7a3.tar.bz2
txr-0d29bebdc195800fc416d6bea57d84140d54e7a3.zip
* eval.c (eval_init): Register juxt as intrinsic.
* lib.c (do_juxt): New static function. (juxtv): New function. * lib.h (juxtv): Declared. * txr.1: Documented juxt.
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 3f38ab97..9443fb88 100644
--- a/lib.c
+++ b/lib.c
@@ -4093,6 +4093,16 @@ val chainv(val funlist)
return func_f0v(nullify(funlist), do_chain);
}
+static val do_juxt(val funcs, val args)
+{
+ return mapcar(curry_123_1(func_n3(apply), args, nil), funcs);
+}
+
+val juxtv(val funlist)
+{
+ return func_f0v(nullify(funlist), do_juxt);
+}
+
static val do_and(val fun1_list, val args)
{
fun1_list = nullify(fun1_list);