From a64051403add21313016618fd01db32e5255b8b9 Mon Sep 17 00:00:00 2001 From: Alexander Rosenberg Date: Thu, 29 Jan 2026 00:15:18 -0800 Subject: [PATCH] Allow calling lambdas directly --- lisp/kernel.gl | 3 +-- src/function.c | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lisp/kernel.gl b/lisp/kernel.gl index 225314a..a4b74af 100644 --- a/lisp/kernel.gl +++ b/lisp/kernel.gl @@ -1,4 +1,3 @@ ;; -*- mode: lisp-data -*- -(print (funcall (let ((te 'a)) - (lambda (b &optional (a te ap)) a)) 2 3)) +(print ((lambda (a) a) 1)) diff --git a/src/function.c b/src/function.c index 15b91d2..5fe0615 100644 --- a/src/function.c +++ b/src/function.c @@ -477,6 +477,8 @@ DEFUN(funcall, "funcall", (LispVal * func, LispVal *args), "(func &rest args)", LispFunction *fobj = func; if (SYMBOLP(func)) { fobj = Fsymbol_function(func, Qt); + } else if (CONSP(func) && EQ(XCAR(func), Qlambda)) { + fobj = Feval(func, TOP_LEXENV()); } // include symbol here for the error message CHECK_TYPE(fobj, TYPE_FUNCTION, TYPE_SYMBOL);