мне нужно определить функцию внутри позволения и быть в состоянии немедленно использовать его, как это:Как определить функцию локально в lisp?
(let ((test (lambda() (print "ha"))))
(test))
Однако, так как тест является переменным (а не функция), она не работает. Вместо этого мне нужно запустить его следующим образом:
(let ((test (lambda() (print "ha"))))
(funcall test))
В моем случае это проблема. Я мог бы решить это, сделав макрос, который изменит (тест) на (funcall test), однако это не сработает, поскольку имя макроса будет таким же, как и метод в моем случае (я предполагаю, что это вызовет (тест), чтобы стать (funcall test) => (funcall (funcall test)) => ...?)
Есть ли способ определить метод в лямбда и запустить его немедленно, без чего-то вроде funcall?
функции называются * функциями *, а не * методами *. Нет * локальных методов *. –