2010-09-20 8 views

Respuesta

8

'' Las tablas de símbolos se denominan 'paquetes' en Common Lisp. Ver por ejemplo: Introduction to Packages, CL HyperSpec.

Varias operaciones sobre paquetes están disponibles en Common Lisp: The Packages Dictionary.

Symbols pueden ser miembros de paquetes (siendo 'interned').

La variable *package* contiene un paquete como valor, que es utilizado por varias operaciones que usan un paquete como valor predeterminado. Un ejemplo es 'reader', que de forma predeterminada busca en el paquete de * paquete *.

+0

ohhh, así que de ahí vienen los paquetes perl, y por qué todos los typeglobs que son entradas están siempre vinculados a un paquete O.o – Dmitry

5

Puede usar do-all-symbols.

Consulte here para una pregunta similar. La respuesta aceptada también tiene algunos detalles sobre los paquetes, lo cual es útil.

Algo así en el código. Definir useful-symbol-p como mejor le parezca:

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