0

标准的 common-lisp 定义了许多读取器宏,例如(and)用于分组,'for quote"用于字符串引用,|用于符号引用,#用于调度宏等。现在我想将它们全部禁用并使用我自己的,我必须调用set-macro-character一个一个禁用它们,然后定义我自己的。

我发现有一种方法可以通过调用将所有阅读器宏恢复为标准宏(setf *readtable* (copy-readtable nil)),但是有没有办法将它们设置为空(即,所有字符都被视为普通字母和数字)?

4

1 回答 1

3

我不认为有办法。期望是您只是对 Lisp 阅读器进行增量修改,而不是试图大规模替换它。它并不是真正设计成这样使用的,因为您不能将所有内容都定义为宏——大多数组成字符都与无法定义为阅读器宏的内置行为相关联。

于 2014-01-06T07:56:49.953 回答