2
A
回答
2
我才发现,这是很常见是在alexandria一个idion。从亚历山大代码:
(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))
下面是一个使用〔实施例:
(let ((! ;; Everything can be a symbol :D
;; Definition here
(named-lambda self (n)
(case n
(1 1)
(otherwise (* n
(self (1- n)))))))) ;; Recurse here
;; How to call it
(funcall ! 6))
+0
P.S.我只是想为拉尔斯布林霍夫的回答添加一个例子。 – fstamour
1
什么malisper说。
或者,如果你真的需要一个名为拉姆达:
(defmacro named-lambda (name args &body body)
`(labels ((,name ,args ,@body))
#',name))
相关问题
- 1. defun和lambda在lisp
- 2. 如何在LISP中定义LAMBDA函数?
- 3. 重命名命名空间的常用Lisp方法
- 4. 如何使用重命名文件在Lisp中移动文件
- 5. Emacs lisp lambda with lexical binding?
- 6. 通用lisp函数/宏别名
- 7. AWS Lambda重命名函数
- 8. C#lambda未命名参数
- 9. 重命名lambda函数(php)
- 10. 无法在命名嵌套类时在Lambda中解析名称
- 11. (通常lisp)展平和通过名单
- 12. 在普通lisp中使用&allow-other-keys
- 13. 命名指南 - 命名通用对象
- 14. 如何通过Lambda函数重命名列 - fasterXML
- 15. 关于Lisp Lambda函数的问题来自Lisp Land的示例
- 16. Common Lisp lambda表达式错误
- 17. 如何正确使用emacs lisp语言中的lambda?
- 18. 为什么#在Common Lisp的lambda之前使用?
- 19. LINQ命名标准 - Lambda表达式
- 20. 命名函数vs lambda反映
- 21. Emacs Lisp:(function(lambda ...))和(lambda ...)之间的区别?
- 22. LISP如何将lambda函数关联到名称/符号以稍后调用它?
- 23. LISP通过
- 24. SBCL - 通用Lisp的错误
- 25. 通用lisp散列表
- 26. 并行通用Lisp采样
- 27. LISP通用列表功能
- 28. 想学习通用的lisp
- 29. ZeroMQ的通用lisp绑定
- 30. 通用LISP附加程序
我可以lambda函数赋值给一个符号,然后'(funcall)'这个符号,但必须有一个更漂亮的方式。 – erjoalgo
看看标签:http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/speope_fletcm_scm_macrolet.html – malisper