在Common Lisp中访问活动符号表

Eli*_*der 6 lisp common-lisp symbol-tables

我听说可以在Common Lisp运行时中访问活动符号表.我误解了吗?

Rai*_*wig 8

'符号表'在Common Lisp中称为'包'.请参阅示例:软件包简介,CL HyperSpec.

Common Lisp:Packages Dictionary中提供了一些关于包的操作.

符号可以是包的成员(被"实习").

变量*package*将包作为值保存,由多个使用包作为默认值的操作使用.一个例子是' reader ',它默认在*package*的包中查找.


msa*_*ord 6

你可以用do-all-symbols.

这里的类似的问题.接受的答案也有关于包装的一些细节,这很方便.

在代码中有这样的东西.useful-symbol-p根据您的需要定义:

(let ((lst ()))
   (do-all-symbols (s lst)
     (when (useful-symbol-p s) (push s lst)))
   lst)
Run Code Online (Sandbox Code Playgroud)