如何在Scheme中的列表中包含'引用?

时间:2010-11-06 18:23:46

标签: scheme quote

我试图在Scheme中创建一个列表,如下所示:(列出'quote'a)我希望输出为(引用a),但是解释器会提取引号,输出为:'a

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

2 个答案:

答案 0 :(得分:4)

这应该是,因为表达式'a是列表(quote a)的缩写,并且解释器的打印机正在使用该简写作为其输出。您应该注意,如果您告诉口译员评估'a,它会打印出a与撇号一起使用。

如果您尝试取出(list 'quote 'a)的部分内容,您会看到您确实拥有预期的列表:

> (car (list 'quote 'a))
quote
> (cadr (list 'quote 'a))
a

总而言之, 获得预期的输出,而不是预期的表示。如果您真的要求获得输出(quote a),那么您必须查看解释器的文档以查看是否支持。或者您可能必须编写自己的程序来打印列表。

答案 1 :(得分:0)

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