如何列出在常见的lisp中处于活动状态的所有已定义函数和全局变量

时间:2017-02-03 03:10:47

标签: emacs common-lisp sbcl slime

是否可以从正在运行的系统本身确定当前环境定义的内容(在常见的lisp映像中)?

我在GNU Emacs 25.1.1中运行SBCL 1.3.14和SLIME 2016-04-19。

1 个答案:

答案 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