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