I want to define reader macros in such a way that they affect only a certain package/file.

So far I was able to load those files with

(let ((*readtable* (copy-readtable)))
  (load "file.lisp"))

Is there a better way to do it?

有帮助吗?

解决方案

named-readtables is quite good to manipulate readtables.

EDIT:

You can look at Clesh and especially this commit to see how I've used named-readtables to define a new readtable. So now, instead of using (clesh:enable) to use the reader macros, one use (named-readtables:in-readtable clesh:syntax).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top