1

为什么(quote '"foo")要通过 Scheme 解释器?根据 Scheme 中表达式的构造方式,它在语法上应该是多余的或错误的。quote每当一个人想要使用一个符号而不认为它是一个变量并且字符串不是 有效的符号时使用,那么为什么运算符的缩写在quote字符串前缀时是有效的?奇怪的是(quote '"foo")回报(quote "foo")冗余?

(symbol? '"foo")评估另一个奇怪的实验#f,以证明引用的字符串仍然不是符号(如果引用在语句中以这种方式工作)。那么,'字符串上的忽略还是在其他地方有某种用途?我正在使用鸡计划。

有点微不足道,但同时有点令人难以置信。

4

1 回答 1

3

规范中所述:

(quote <datum>)计算为由(参见第 4.3 节)表示的基准值。此表示法用于包括常量。

以上不排除字符串的引用,实际上该部分中的示例之一就是这个:

'"abc" => "abc"

由此可见,这也是有效的:

''"abc" => ''"abc"
于 2013-03-18T16:16:27.587 回答