【发布时间】:2013-04-07 05:50:21
【问题描述】:
最近开始学习方案语言
但我真的不知道如何解决这个问题。
(define A
(lambda()
(let* ((x 2)
(C (lambda (P)
(let ((x 4))
(P))))
(D (lambda ()
x))
(B (lambda ()
(let ((x 3))
(C D)))))
B)))
问。会打印什么?浅绑定和深绑定呢?
我简要了解了define、lambda、let*,但我不知道如何解决这个问题。 我该如何解决?请评论并详细说明
【问题讨论】:
-
就我个人而言,我什至不记得 let 或 let* 是什么意思了,所以我不会讨论这个问题。但是由于 Michael Scott 的书涵盖了如此多的语言,我想您可能手头没有 Scheme 解释器。这个看起来不错:repl.it/languages/Scheme(只需按 Ctrl-Enter 即可评估您的表情)抱歉,我帮不上忙。
-
如果你正在学习Scheme,我会说安装一个漂亮、简单和完整的环境是值得的,比如racket-lang.org。
-
我已经在 putty 上使用了 mit-scheme。但是当我执行该代码时,它会打印值:我不知道为什么
-
“浅绑定和深绑定”是什么意思?
-
啊,如果在该代码中使用浅绑定的动态作用域和使用深绑定的动态作用域会打印什么
标签: scheme