我正在尝试在 Scheme 中创建一个这样的列表: (list 'quote 'a) 并且我希望输出为 (quote a) 但解释器执行引用并且输出为:'a
如何编写代码以获得预期的输出?
这是应该的,因为表达式'a
是 list 的缩写(quote a)
,并且解释器的打印机正在使用该简写作为其输出。您应该注意,如果您告诉解释器进行评估'a
,它会打印出不a
加修饰的撇号。
如果您尝试取出 的部分(list 'quote 'a)
,您会看到您拥有预期获得的列表:
> (汽车 (list 'quote 'a)) 引用 > (cadr (list 'quote'a)) 一个
所以总而言之,你得到的是预期的输出,而不是预期的表示。如果你真的要求你得到输出(quote a)
,那么你必须查看你的解释器的文档,看看是否支持。或者您可能必须编写自己的程序来打印列表。
您正在使用哪种实现。更改 REPL 打印出 sexps 的方式取决于您对方案的实现,以及该实现是否支持以扩展形式写出 sexps。