4
A
回答
6
最好的选择是读取let,let *和letrec的official R5RS descriptions。
总之,但是:
(let ((x 2))
(let ((x 3) (y x))
y) => 2
(let ((x 2))
(let* ((x 3) (y x))
y) => 3
所以,让让之间的差异*:咱们都将对于绑定评估上述水平(因此它不会不管他们正在上市为了什么in),让*按顺序执行。 (let *((xa)(by)))等价于(let((xa))(let(by)))
另一方面,Letrec允许您绑定递归值。你可能会写一个递归函数,你只想在函数范围内,并使用letrec将它绑定到一个名字上。
相关问题
- 1. 方案 - 使用let的函数
- 2. 例如,letrec/letrec *比使用内部定义或命名let更好吗?
- 3. letrec的常见用法,名为let和internal定义?
- 4. 何时使用Clojure中的let vs if-let
- 5. Swift - Guard-let vs if-let
- 6. 如何使用let子句
- 7. let cond
- 8. Lisp,cffi,let和memory
- 9. F#:模块let和类型static let有何区别?
- 10. 创建本地绑定的'let'或'letrec'和'define'之间有什么区别?
- 11. 什么时候我们使用let rec?
- 12. 在let中使用散列()
- 13. Clojure:when-let的快捷方式
- 14. lazy evaluation和rspec的let方法
- 15. Haskell - Let in expression
- 16. 为什么when-let和if-let默认支持多个绑定?
- 17. “let”和“static let”之间的区别是什么?
- 18. 如何在Spring-Data中使用MongoDB $ let?
- 19. Lazy Var vs Let
- 20. Scheme Let语句
- 21. Swift:If Let Conundrum
- 22. Elisp:bounds in let
- 23. 用多个let块输入'let'解析错误
- 24. “let”绑定不适用于后续的“let”绑定?
- 25. Linq - 如何通过'let'值进行分组,然后求和'let'值
- 26. 方案:为什么'设置!'修改'let'的局部变量?
- 27. JSFiddle上的Javascript“let”
- 28. Let,Haskell范围内,
- 29. restFixture LET for text/plain
- 30. flet相当于let *?