|
|
1
3
想想布景!是一种特殊形式,如define,它不计算其第一个操作数。您正在告诉方案解释器按照您的编写方式设置该变量。在您的示例中,它不会将表达式“a”计算为单词a。相反,它会查找一个名为“a”的变量绑定(或者根据您的解释器,在此之前可能会中断,因为我认为“a”不是一个有效的绑定)。 对于最后一组表达式,如果要设置一对中的car,请使用函数(set car!pair-val),该函数的工作原理与任何方案函数一样,因为它计算其所有操作数。它接受两个值,一对和一些方案值,并对其进行修改,使汽车现在指向方案值。 例如。
|
|
|
2
2
因为set的第一个参数!是一个变量名,而不是可以说的“左值”。 对于最后一种情况,使用(set car!a 10)。 |
|
|
3
-2
问题在于 (设置!'a 10) ,因为你不应该引用这个符号 一 . 听起来你在学习Scheme,但你不懂Lisp,是吗?如果是这样,我强烈建议尝试Clojure,因为它更容易学习Lisp。在Common Lisp和Scheme中,我未能理解阅读器、求值、符号、特殊形式、宏等之间的交互,因为这些东西似乎都以错综复杂的方式相互作用,但我终于在Clojure中真正理解了它们。尽管它是新的,但我发现Clojure文档实际上比我为Scheme或CL找到的任何文档都更清晰 http://clojure.blip.tv/ 然后阅读clojure.org上的文档。 |
|
|
David J. · 这个基本的scheme函数有什么问题 3 年前 |
|
|
Asher · 如何使用DrRacket遵循简单方案手册 7 年前 |
|
|
Flux · 如何从MIT方案访问环境变量? 7 年前 |
|
|
Adam Morad · 方案反转值 7 年前 |
|
|
Adam Morad · 方案更改树值 7 年前 |
|
|
lightning_missile · 词法范围和共享对象 7 年前 |