2017-02-19 5 views
2

Speichern jeder Common Lisp Strukturobjekt in eine Datei (leserlich) scheint relativ einfach mit so etwas wieSpeichern CLOS Objekte

(defun save-structure-object (object filename) 
    (with-open-file (stream filename :direction :output 
            :if-exists :supersede) 
    (with-standard-io-syntax (print object stream)))) 

Für eine Objektinstanz CLOS, jedoch zeigt der Beitrag bei Make clos objects printable in lisp eine komplexere Rezept.

Erstens: Bezieht sich der Kommentar zu closer-mop auf einen einfacheren Ansatz zum Speichern einer Clos-Klasseninstanz?

Und zweitens, wird der dort angebotene Code als allgemeines Dienstprogramm zum Drucken von clos-Instanzen angeboten?

Antwort

1

Closer to MOP ermöglicht es Ihnen, das gefährliche Gewirr von Lesezeitbedingungen in dem Beitrag, auf den Sie verweisen, zu vermeiden. Im Allgemeinen ist die Verwendung einer OOTB-Lösung, die viele Benutzer verwenden, sicherer als ein zufälliger Ad-hoc-Hack - der eigene oder der eines anderen.

Bevor closer-mop war um, schrieb ich meine eigenen CLOS/MOP compatibility layer und CLOS object i/o. Ich schlage vor, dass Sie es anstelle des Codes in der SO-Antwort verwenden, auf die Sie verweisen.

Verwandte Themen