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

Common lisp 如何最好地保存/读取数据结构?,common-lisp,clos,Common Lisp,Clos,我想将FOO和BAR指向的一些数据结构写入一个文件,并在启动新的Common Lisp会话时将数据结构读回符号FOO和BAR 看起来,*PRINT-readable*允许对象以可通过read读回的方式打印,并且我可以使用(defmethod PRINT object…更改对象的打印方式。由于对象应该以读取可以接受的方式打印,因此我不必定义任何进一步的方法来重新读取对象 但是,有没有一种方法可以将每个写入的数据结构与其对应的符号联系起来,而不必依赖于数据结构的写入和读取顺序?如果我理解正确,您可以

我想将
FOO
BAR
指向的一些数据结构写入一个文件,并在启动新的Common Lisp会话时将数据结构读回符号
FOO
BAR

看起来,
*PRINT-readable*
允许对象以可通过
read
读回的方式打印,并且我可以使用
(defmethod PRINT object…
更改对象的打印方式。由于对象应该以
读取
可以接受的方式打印,因此我不必定义任何进一步的方法来重新读取对象


但是,有没有一种方法可以将每个写入的数据结构与其对应的符号联系起来,而不必依赖于数据结构的写入和读取顺序?

如果我理解正确,您可以将值和相关符号成对存储在文件中,例如:

(x . (1 2 3 4))
(y . (6 7 8 1))
(let ((pair (read))
  (set (car pair) (cdr pair)))
当你把它解析出来时,使用如下的方法:

(x . (1 2 3 4))
(y . (6 7 8 1))
(let ((pair (read))
  (set (car pair) (cdr pair)))

如果我理解正确,您可以将值和相关符号成对存储在文件中,如下所示:

(x . (1 2 3 4))
(y . (6 7 8 1))
(let ((pair (read))
  (set (car pair) (cdr pair)))
当你把它解析出来时,使用如下的方法:

(x . (1 2 3 4))
(y . (6 7 8 1))
(let ((pair (read))
  (set (car pair) (cdr pair)))

如果我理解正确,您可以将值和相关符号成对存储在文件中,如下所示:

(x . (1 2 3 4))
(y . (6 7 8 1))
(let ((pair (read))
  (set (car pair) (cdr pair)))
当你把它解析出来时,使用如下的方法:

(x . (1 2 3 4))
(y . (6 7 8 1))
(let ((pair (read))
  (set (car pair) (cdr pair)))

如果我理解正确,您可以将值和相关符号成对存储在文件中,如下所示:

(x . (1 2 3 4))
(y . (6 7 8 1))
(let ((pair (read))
  (set (car pair) (cdr pair)))
当你把它解析出来时,使用如下的方法:

(x . (1 2 3 4))
(y . (6 7 8 1))
(let ((pair (read))
  (set (car pair) (cdr pair)))

请注意,
(x.(1234))
是一个与
(x1234)
形状相同的对象。是的,尽管从OP的问题来看,听起来他会告诉我们其他数据结构。除了列表。请注意,
(x.(12 3 4))
是一个与
(x 12 3 4)
形状相同的对象。是的,尽管从OP的问题来看,听起来他会告诉我们其他数据结构。除了列表。请注意,
(x.(12 3 4))
是一个与
(x 12 3 4)
形状相同的对象。是的,尽管从OP的问题来看,听起来他会告诉我们其他数据结构。除了列表。请注意,
(x.(12 3 4))
是一个与
(x 12 3 4)
形状相同的对象。是的,尽管从OP的问题来看,听起来他会告诉我们其他数据结构。除了名单。