我需要编写一个递归辅助函数,不需要给它全局范围,但我需要引用它来实现递归。
Emacs lisp有fset
,它为符号的功能单元分配。常见的lisp中的等价物是什么?
答案 0 :(得分:2)
我刚刚发现这是一个常见于alexandria的惯用语。来自亚历山大代码:
(defmacro named-lambda (name lambda-list &body body)
"Expands into a lambda-expression within whose BODY NAME denotes the corresponding function."
`(labels ((,name ,lambda-list ,@body))
#',name))
以下是一个用法示例:
答案 1 :(得分:1)
malisper说的是什么。
或者如果你真的需要一个名为lambda:
(defmacro named-lambda (name args &body body)
`(labels ((,name ,args ,@body))
#',name))