Esiste un modo breve per esportare tutti i simboli da un pacchetto o è l'unico modo per farlo in defpackage
. Io in genere scrivo il mio codice in un file foo.lisp
che inizia in genere con (in-package :foo)
e metto la definizione del pacchetto in un file package.lisp
che coinvolge in genere qualcosa di simile:Comune Lisp che esporta i simboli dai pacchetti
(in-package :cl-user)
(defpackage :foo
(:use :cl)
(:documentation "Bla bla bla."
(:export :*global-var-1*
:*global-var-2*
:function-1
:function-2
:struct
:struct-accessor-fun-1
:struct-accessor-fun-2
:struct-accessor-fun-3
:struct-accessor-fun-4))
La mia domanda è: Progettazione semplicemente un'interfaccia con alcune variabili globali e le funzioni potrebbero non essere adeguate a volte e devi esportare alcune strutture. In questo caso, se non si esportano semplicemente le funzioni di accesso di questa struttura, non è possibile manipolare oggetti di queste strutture. Quindi, esiste un modo semplice per realizzare questo effetto senza esportare manualmente tutte queste funzioni accessorie?
Davvero bello! Non avrei mai pensato di aggiungere e utilizzare uno slot (: export) nella definizione di slot CLOS standard. –