Ho sentito che la tabella dei simboli attiva è accessibile all'interno del Common Lisp runtime. Ho frainteso?Accesso alla tabella dei simboli attivi in Common Lisp
risposta
'Tabelle dei simboli' sono chiamati 'pacchetti' in Common Lisp. Vedi ad esempio: Introduction to Packages, CL HyperSpec.
Diverse operazioni oltre i pacchetti sono disponibili in Common Lisp: The Packages Dictionary.
Symbols possono essere membri di pacchetti (essendo 'internati').
La variabile *package* contiene un pacchetto come valore, che viene utilizzato da diverse operazioni che utilizzano un pacchetto come predefinito. Un esempio è "reader", che per impostazione predefinita effettua una ricerca nel pacchetto di * pacchetto *.
ohhh, ecco da dove provengono i pacchetti perl e perché tutti i typeglob che sono voci sono sempre associati a un pacchetto O.o – Dmitry
È possibile utilizzare do-all-symbols
.
Vedi here per una domanda simile. La risposta accettata ha anche alcuni dettagli sui pacchetti, il che è utile.
Qualcosa di simile nel codice. Definire useful-symbol-p
come meglio credi:
(let ((lst()))
(do-all-symbols (s lst)
(when (useful-symbol-p s) (push s lst)))
lst)
Cosa intendi per "tabella dei simboli attivi"? –