我试图在Scheme中创建一个列表,如下所示:(列出'quote'a)我希望输出为(引用a),但是解释器会提取引号,输出为:'a
如何编写代码以获得预期的输出?
答案 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。