为什么(quote'";foo";在Scheme中是有效语法?

为什么(quote'";foo";在Scheme中是有效语法?,scheme,Scheme,为什么(引用“foo”)要通过Scheme解释器?根据Scheme中表达式的构造方式,它在语法上应该是冗余的或错误的quote在任何情况下都会被使用,而Scheme不会认为它是一个变量,字符串也不会那么为什么quote操作符的缩写在前缀为字符串时是有效的呢?奇怪的是(quote'foo)返回(quote'foo)。冗余 另一个奇怪的实验将(symbol?“'foo”)计算为#f,从而证明引用的字符串仍然不是符号(如果引用在语句中以这种方式工作)。那么,“在字符串上被忽略了,还是在其他地方起到了某

为什么
(引用“foo”)
要通过Scheme解释器?根据Scheme中表达式的构造方式,它在语法上应该是冗余的或错误的
quote
在任何情况下都会被使用,而Scheme不会认为它是一个变量,字符串也不会那么为什么
quote
操作符的缩写在前缀为字符串时是有效的呢?奇怪的是
(quote'foo)
返回
(quote'foo)
。冗余

另一个奇怪的实验将
(symbol?“'foo”)
计算为
#f
,从而证明引用的字符串仍然不是符号(如果引用在语句中以这种方式工作)。那么,
在字符串上被忽略了,还是在其他地方起到了某种作用?我用的是鸡肉方案

有点琐碎,但同时也有点让人难以置信。

如中所述:

(quote)
计算得出的基准值为(见第4.3节)。此符号用于包含常量

上面没有排除字符串的引号,事实上,该部分中的一个示例是:

'"abc" => "abc"
因此,这也是有效的:

''"abc" => ''"abc"

啊,也许我应该从说明书的第一页开始:)