29
A
回答
30
Common Lisp中,既flet
和labels
使稍有不同类型的词汇绑定:
flet
是当地的功能结合的一种特殊形式。 绑定不是递归的,不能互相引用。每个绑定都包含函数名称,参数和函数体。labels
是本地函数绑定的特殊形式。 绑定可以是递归的,可以互相引用。每个绑定都包含函数名称,参数和函数体。
在Emacs Lisp中,有一个小的差异。 标签表单与flet类似,只不过它使功能名称的词汇绑定而不是动态绑定。
相关问题
- 1. Common Lisp中的原子和符号有什么区别?
- 2. Common Lisp中的eq,eql,equal和equalp有什么区别?
- 3. FUNCALL和#'function-name in common lisp有什么区别?
- 4. Lisp中'和#'有什么区别?
- 5. 在emacs中,cl-flet和cl-letf有什么区别?
- 6. 让和FLET中的Emacs Lisp
- 7. 在Lisp(Clojure,Emacs Lisp)中,list和quote有什么区别?
- 8. Lisp中1和'1之间有什么区别?
- 9. 需求和负载共同lisp有什么区别?
- 10. Common Lisp和Scheme中deftype之间的区别
- 11. common lisp和emacs
- 12. Lisp/Clojure中的procedure和#程序有什么区别?
- 13. LISP中的变量和符号有什么区别?
- 14. Racket(lisp编程语言)中的[]和()括号有什么区别?
- 15. 在LISP中,“let”和“with”有什么区别?
- 16. JBoss 6:common/lib和client目录有什么区别?
- 17. 有什么区别`和$(Bash中有什么区别?
- 18. Scheme和Common Lisp之间的实际区别是什么? (或Lisp的任何其他两种方言)
- 19. let *和set之间的区别?在Common Lisp
- 20. 与Common Lisp中
- 21. Common Lisp中
- 22. Common Lisp可以做些什么?
- 23. Common Lisp a Lisp-n?
- 24. notable_for和notable_types属性有什么区别?
- 25. ==和===有什么区别?
- 26. ==和===有什么区别?
- 27. 有什么区别? :和||
- 28. ==和===有什么区别?
- 29. '=='和'==='有什么区别?
- 30. `&`和`ref`有什么区别?
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