【发布时间】:2018-03-28 20:31:34
【问题描述】:
(定义除数
(λ (n)
(让 f((i 2))
(条件((> = i n)'())
((整数?(/ n i))(缺点i(f(+ i 1))))
(否则(f(+i 1)))))))
我对@987654323@ 部分以及使用(f (+ i 1)) 的递归调用有点困惑。
f 会变成全部((i 2)) 吗? (f (+ i 1)) 部分是如何工作的?我认为(+ i 1) 变成了3,但是会发生什么?
编辑:我不太确定let 是如何工作的。我不太确定如何表达我不明白的内容。如果有人可以解释 let 通常如何与该递归调用一起工作,那将很有帮助。我见过let 的其他示例,但我不明白它在这种方法中是如何工作的。
edit2:谢谢,我不知道它被称为namedlet。我正在查找let,我找到了let*,但他们没有重新命名为let。
【问题讨论】:
-
您好,欢迎来到 SO。我们很乐意在这里提供帮助,但是您能否编辑您的问题并正确格式化您的代码?就像现在一样 - 它不可读:(
-
这种结构称为“命名的let”。我目前没有时间详细说明,但这应该可以帮助您进一步了解它。