Scheme 引用将下列表达式更改为什么?

Scheme 引用将下列表达式更改为什么?,scheme,Scheme,引用将下列表达式更改为什么?是字符串还是列表,还是两者都有?第一个示例似乎变成了一个列表,而第二个示例似乎变成了一个字符串 在Scheme中字符串和列表是相关类型吗 谢谢。“只是(引用数据)的同义词。它准确地引用了它后面的数据。在您的示例中,首先引用一个语法列表,然后它只是一个符号 String是一种基本数据类型,list是两个值的聚合(到目前为止,我所知道的语言中,只有Haskell将字符串定义为字符列表,不确定Erlang是否敢于这样做)。尽管它们显然可以使用相同的通用算法,但它们的方法虽然

引用将下列表达式更改为什么?是字符串还是列表,还是两者都有?第一个示例似乎变成了一个列表,而第二个示例似乎变成了一个字符串

在Scheme中字符串和列表是相关类型吗

谢谢。

只是
(引用数据)
的同义词。它准确地引用了它后面的数据。在您的示例中,首先引用一个语法列表,然后它只是一个符号


String是一种基本数据类型,list是两个值的聚合(到目前为止,我所知道的语言中,只有Haskell将字符串定义为字符列表,不确定Erlang是否敢于这样做)。尽管它们显然可以使用相同的通用算法,但它们的方法虽然同构,但在Scheme的标准库中有不同的名称。

谢谢。函数的类型是什么?它是否返回列表或字符串?@Tim它将其参数的结构化源代码作为数据返回。它适用于所有具有文字表示的值,甚至是自计算的字符串和数字;例如,
'42
的计算结果是
(引用42)
,而不是42。可以说它是多态的:当使用列表调用时,返回一个列表,一旦应用到数字文本,则返回一个数字。这里有一个简短的描述:(从那以后一直没有改变)。
(display (+ 1 2)) ; output 3
(display '(+ 1 2)) ; output (+ 1 2)

(display z) ; Error: execute: unbound symbol: "z" []
(display 'z) ; output z