Сохранение объектов 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, на который вы ссылаетесь.

Другие вопросы по тегам