获取用户创建的变量列表

时间:2011-12-03 22:55:06

标签: lisp common-lisp

我想获得我在lisp会话中创建的所有变量的列表。我认为通过查看common-lisp-user中的所有符号,这应该是可能的。但是我怎么能得到这样的清单?

2 个答案:

答案 0 :(得分:3)

要仅从cl-user获取绑定变量,请使用do-symbols迭代所有绑定符号,并排除从其他包导入的符号:

(let ((external-symbols (mapcan (lambda (pkg)
                                  (let (rez)
                                    (do-symbols (s pkg rez)
                                      (push s rez))))
                                (package-use-list (find-package 'cl-user)))))
  (do-symbols (s 'cl-user)
    (when (and (boundp s)
               (not (member s external-symbols)))
      (print s))))

答案 1 :(得分:2)

您可以使用do-symbols查找common-lisp-user包中的符号。

请参阅the CLHS entry for Macro DO-SYMBOLS, DO-EXTERNAL-SYMBOLS, DO-ALL-SYMBOLS