0

我正在尝试在 Scheme 中创建一个这样的列表: (list 'quote 'a) 并且我希望输出为 (quote a) 但解释器执行引用并且输出为:'a

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

4

2 回答 2

4

这是应该的,因为表达式'a是 list 的缩写(quote a),并且解释器的打印机正在使用该简写作为其输出。您应该注意,如果您告诉解释器进行评估'a,它会打印出不a加修饰的撇号。

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

> (汽车 (list 'quote 'a))
引用
> (cadr (list 'quote'a))
一个

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

于 2010-11-06T18:40:26.837 回答
0

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

于 2010-11-06T18:34:08.520 回答