小智 9
最好的办法是阅读官方R5RS描述的let,let*和letrec.
简而言之,但是:
(let ((x 2))
(let ((x 3) (y x))
y) => 2
(let ((x 2))
(let* ((x 3) (y x))
y) => 3
Run Code Online (Sandbox Code Playgroud)
因此,let和之间的区别将let*是let评估与上述级别相关的所有绑定(因此它们列出的顺序并不重要),而let*顺序也是如此.(let* ((x a) (b y)))相当于(let ((x a)) (let ((b y))).
letrec另一方面,允许您绑定递归值.因此,您可能会编写一个递归函数,您只想在函数范围内并使用它将其绑定到名称letrec.
| 归档时间: |
|
| 查看次数: |
12279 次 |
| 最近记录: |