如何最好地保存/读取数据结构



我想写一些由FOOBAR指向的数据结构到一个文件,并在我开始一个新的Common Lisp会话时将数据结构读回符号FOOBAR

似乎*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)))

相关内容

  • 没有找到相关文章

最新更新