2010-09-20 13 views

risposta

8

'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 *.

+0

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

5

È 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)