如何在公共lisp中将*readtable*设置为空



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

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

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

相关内容

  • 没有找到相关文章

最新更新