我想写一些由FOO
和BAR
指向的数据结构到一个文件,并在我开始一个新的Common Lisp会话时将数据结构读回符号FOO
和BAR
。
似乎*PRINT-READABLY*
允许对象以一种可以被READ
读回的方式打印,并且我可以使用(defmethod print-object ...)
改变对象的打印方式。因为对象应该以READ
可以接受的方式打印,所以我不需要定义任何进一步的方法来读取对象。
但是有没有一种方法可以将每个写入的数据结构与其对应的符号绑定在一起,而不必依赖于数据结构写入和读取的顺序?
如果我理解正确的话,您可以将值和相关符号成对地存储在文件中,例如:
(x . (1 2 3 4))
(y . (6 7 8 1))
当你解析它的时候,使用像这样的东西:
(let ((pair (read))
(set (car pair) (cdr pair)))