我如何包括';在Scheme中的列表中引用?

我如何包括';在Scheme中的列表中引用?,scheme,quote,Scheme,Quote,我试图在Scheme中创建这样一个列表:(list'quote'a),我希望输出是(quote a),但是解释器执行了这个quote,输出是:'a' 如何编写代码以获得预期的输出?您正在使用哪个实现。更改REPL打印sexps的方式取决于您对scheme的实现,以及该实现是否支持以扩展形式写出sexps。您使用的是哪种实现。更改REPL打印sexps的方式取决于您对scheme的实现,以及该实现是否支持以扩展形式写出sexps。这是应该的,因为表达式'a是列表(引号a)的缩写,解释器的打印机使用

我试图在Scheme中创建这样一个列表:(list'quote'a),我希望输出是(quote a),但是解释器执行了这个quote,输出是:'a'


如何编写代码以获得预期的输出?

您正在使用哪个实现。更改REPL打印sexps的方式取决于您对scheme的实现,以及该实现是否支持以扩展形式写出sexps。

您使用的是哪种实现。更改REPL打印sexps的方式取决于您对scheme的实现,以及该实现是否支持以扩展形式写出sexps。

这是应该的,因为表达式
'a
是列表
(引号a)
的缩写,解释器的打印机使用速记作为输出。您应该注意,如果您告诉解释器对
'a
求值,它将打印出
a
,而不使用撇号

如果您尝试取出
(列出'quote'a)
,您会发现您得到的正是您期望得到的列表:

> (car (list 'quote 'a)) quote > (cadr (list 'quote 'a)) a >(汽车(列表“报价”a)) 引用 >(cadr(列出“报价”a)) A.
总之,您得到的是预期的输出,而不是预期的表示。如果您确实要求以输出的形式获取
(quote a)
,那么您必须查看解释器的文档,看看是否支持。或者,您可能需要编写自己的过程来打印列表。

这是应该的,因为表达式
'a
是列表
(引号a)
的缩写,而解释器的打印机正在使用该缩写作为其输出。您应该注意,如果您告诉解释器对
'a
求值,它将打印出
a
,而不使用撇号

如果您尝试取出
(列出'quote'a)
,您会发现您得到的正是您期望得到的列表:

> (car (list 'quote 'a)) quote > (cadr (list 'quote 'a)) a >(汽车(列表“报价”a)) 引用 >(cadr(列出“报价”a)) A. 总之,您得到的是预期的输出,而不是预期的表示。如果您确实要求以输出的形式获取
(quote a)
,那么您必须查看解释器的文档,看看是否支持。或者,您可能需要编写自己的过程来打印列表