是否可以从正在运行的系统本身确定当前环境定义的内容(在常见的lisp映像中)?
我在GNU Emacs 25.1.1中运行SBCL 1.3.14和SLIME 2016-04-19。
答案 0 :(得分:4)
您可以使用list-all-packages
获取所有软件包的列表,对于每个软件包,您可以使用do-external-symbols
查看其导出的内容:
(do-external-symbols (s "SB-EXT")
(when (fboundp s)
(format t "~S names a function~%" s))
(when (boundp s)
(format t "~S names a variable~%" s)))
您可能还想查看documentation
:
(do-external-symbols (s "SB-EXT")
(when (and (fboundp s) (documentation s 'function))
(format t "~S names a documented function~%" s))
(when (and (boundp s) (documentation s 'variable))
(format t "~S names a documented variable~%" s)))
PS。如果您正在寻找特定的内容,您还应该尝试apropos
。