2010-09-20 5 views

Antwort

8

'Symboltabellen' werden genannt 'Pakete' in Common Lisp. Siehe zum Beispiel: Introduction to Packages, CL HyperSpec.

Mehrere Operationen über Pakete sind in Common Lisp verfügbar: The Packages Dictionary.

Symbols können Mitglieder von Paketen sein (interniert). Die Variable *package* enthält ein Paket als Wert, der von mehreren Vorgängen verwendet wird, die standardmäßig ein Paket verwenden. Ein Beispiel ist die 'reader', die standardmäßig in dem Paket * package * nachschlägt.

+0

ohhh also das ist, wo Perl-Pakete kommen, und warum alle Typeglobs, die Einträge sind immer an ein Paket O.o gebunden sind – Dmitry

5

Sie können do-all-symbols verwenden.

Siehe here für eine ähnliche Frage. Die angenommene Antwort enthält einige Details zu Paketen, was praktisch ist.

So etwas in Code. Definieren useful-symbol-p wie Sie sehen, passen:

(let ((lst())) 
    (do-all-symbols (s lst) 
    (when (useful-symbol-p s) (push s lst))) 
    lst)