29
A
回答
30
Common Lisp中,既flet
和labels
使稍有不同類型的詞彙綁定:
flet
是當地的功能結合的一種特殊形式。 綁定不是遞歸的,不能互相引用。每個綁定都包含函數名稱,參數和函數體。labels
是本地函數綁定的特殊形式。 綁定可以是遞歸的,可以互相引用。每個綁定都包含函數名稱,參數和函數體。
在Emacs Lisp中,有一個小的差異。 標籤表單與flet類似,只不過它使功能名稱的詞彙綁定而不是動態綁定。
相關問題
- 1. Common Lisp中的eq,eql,equal和equalp有什麼區別?
- 2. Common Lisp中的原子和符號有什麼區別?
- 3. Emacs Lisp和Common Lisp之間的主要區別是什麼?
- 4. Clojure,Scheme/Racket和Common Lisp之間有什麼區別?
- 5. FUNCALL和#'function-name in common lisp有什麼區別?
- 6. Lisp中'和#'有什麼區別?
- 7. 在emacs中,cl-flet和cl-letf有什麼區別?
- 8. 讓和FLET中的Emacs Lisp
- 9. 在Lisp(Clojure,Emacs Lisp)中,list和quote有什麼區別?
- 10. Lisp中1和'1之間有什麼區別?
- 11. Common Lisp:什麼是#+零?
- 12. #+:和#的含義是什麼#::in common lisp
- 13. 需求和負載共同lisp有什麼區別?
- 14. Common Lisp和Scheme中deftype之間的區別
- 15. common lisp和emacs
- 16. Racket(lisp編程語言)中的[]和()括號有什麼區別?
- 17. 在LISP中,「let」和「with」有什麼區別?
- 18. Lisp/Clojure中的procedure和#程序有什麼區別?
- 19. LISP中的變量和符號有什麼區別?
- 20. JBoss 6:common/lib和client目錄有什麼區別?
- 21. 有什麼區別`和$(Bash中有什麼區別?
- 22. Scheme和Common Lisp之間的實際區別是什麼? (或Lisp的任何其他兩種方言)
- 23. let *和set之間的區別?在Common Lisp
- 24. asdf building和Common Lisp
- 25. Common Lisp中
- 26. 與Common Lisp中
- 27. In Common Lisp什麼是印刷表示?
- 28. Common Lisp可以做些什麼?
- 29. 爲什麼Common Lisp不區分大小寫?
- 30. Common Lisp a Lisp-n?
flet over標籤的一個優點是,如果你用flet定義一個函數'foo',它可以在包含範圍內引用另一個名爲'foo'的函數,而帶有標籤的引用將會引用它自己。 – 2012-02-23 21:40:05
這個問題明確的是關於Common Lisp,*而不是Emacs Lisp。刪除第一段會很好,因爲這可能會導致混淆。有很多Lisp方言 - 這個問題是關於Common Lisp的。 – Drew 2015-03-08 17:55:51