summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-06-20 06:48:06 -0700
committerKaz Kylheku <kaz@kylheku.com>2014-06-20 06:48:06 -0700
commite21a452a9c75074ab7eff33b70950aecf3f3c309 (patch)
tree5b8f5301ce2584532ae1b8858833ca420b948535 /eval.c
parent2a9b3bca2622a54434cc16e7c70dce37b1c4d205 (diff)
downloadtxr-e21a452a9c75074ab7eff33b70950aecf3f3c309.tar.gz
txr-e21a452a9c75074ab7eff33b70950aecf3f3c309.tar.bz2
txr-e21a452a9c75074ab7eff33b70950aecf3f3c309.zip
* eval.c (do_apf, apf): New functions.
(eval_init): Register apf as intrinsic. * txr.1: Document apf.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 96bbfe05..c5e024ee 100644
--- a/eval.c
+++ b/eval.c
@@ -3104,6 +3104,16 @@ static val retf(val ret)
return func_f0v(ret, do_retf);
}
+static val do_apf(val fun, val args)
+{
+ return apply(fun, args, nil);
+}
+
+static val apf(val fun)
+{
+ return func_f1(fun, do_apf);
+}
+
static val prinl(val obj, val stream)
{
val ret = obj_print(obj, stream);
@@ -3456,6 +3466,7 @@ void eval_init(void)
reg_fun(intern(lit("or"), user_package), func_n0v(or_fun));
reg_fun(intern(lit("and"), user_package), func_n0v(and_fun));
reg_fun(intern(lit("retf"), user_package), func_n1(retf));
+ reg_fun(intern(lit("apf"), user_package), func_n1(apf));
reg_fun(intern(lit("tf"), user_package), func_n0v(tf));
reg_fun(intern(lit("nilf"), user_package), func_n0v(nilf));