summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 61459838..a70d8474 100644
--- a/eval.c
+++ b/eval.c
@@ -340,6 +340,16 @@ val apply(val fun, val arglist, val ctx_form)
fun = cdr(binding);
}
+ if (!functionp(fun)) {
+ for (nargs = 0;
+ (p < arg + 32) && consp(arglist);
+ nargs++, p++, arglist = cdr(arglist))
+ {
+ *p = car(arglist);
+ }
+ return generic_funcall(fun, arg, nargs);
+ }
+
type_check (fun, FUN);
if (!listp(arglist)) {