使用read-from-string避免大多数比较运算符产生奇怪的结果

时间:2013-03-05 18:25:29

标签: common-lisp comparison-operators

我正在使用一个名为CCL的常见lisp实现,我遇到了一个我不太明白的奇怪问题。

我打电话的时候:

(read-from-string "(=)")

我得到一个包含相等运算符的列表:

(=)

但是当我打电话时:

(read-from-string "(<)")

我在&lt;:

前面得到一个反斜杠
(\<)

我觉得这很混乱,我想知道这可能是我的实施特定的,还是这个规范的一部分?为什么这个\显示为&lt;和&gt;但不是=?

无论如何都要避免反斜杠?

1 个答案:

答案 0 :(得分:2)

反斜杠只是一个演示问题。

当您执行(mapcar #'symbol-name (read-from-string "(<)"))时,您可能会获得("<"),因此 获得正确的符号。

如果您愿意,您可以将此报告为CCL维护者的错误,因为此反斜杠是与ANSI CL标准的(次要)偏差。