Сохранение объектов CLOS
Сохранение любого объекта структуры Common Lisp в файл (читабельно) кажется относительно простым с чем-то вроде
(defun save-structure-object (object filename)
(with-open-file (stream filename :direction :output
:if-exists :supersede)
(with-standard-io-syntax (print object stream))))
Однако для экземпляра объекта CLOS публикация в Make clos объектов, печатаемых в lisp, указывает на более сложный рецепт.
Во-первых, относится ли комментарий о close-mop к более простому подходу к сохранению экземпляра класса clos?
И, во-вторых, представлен ли предлагаемый там код в качестве общей утилиты для печати любого закрытого экземпляра?
1 ответ
Ближе к MOP позволяет избежать опасной путаницы условных выражений во время чтения в посте, на который вы ссылаетесь. Вообще говоря, использование решения OOTB, которое используют многие люди, безопаснее, чем случайный случайный хакер - ваш или чужой.
До closer-mop
Я написал свой собственный уровень совместимости CLOS/MOP и ввод / вывод объектов CLOS. Я предлагаю вам использовать его вместо кода в ответе SO, на который вы ссылаетесь.