在Common Lisp中管理读者宏

sab*_*bof 2 lisp common-lisp reader-macro

我想以这样的方式定义读取器宏,它们只影响某个包/文件.

到目前为止,我能够加载这些文件

(let ((*readtable* (copy-readtable)))
  (load "file.lisp"))
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?

Dai*_*rod 6

named-readtables非常适合操作readtables.

编辑:

你可以看一下Clesh,尤其是这个提交,看看我是如何用来named-readtables定义一个新的readtable的.所以现在,不要(clesh:enable)使用读者宏,而是使用(named-readtables:in-readtable clesh:syntax).