获取用户创建的变量列表

sno*_*ape 5 lisp common-lisp

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

Vse*_*kin 4

要仅从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))))
Run Code Online (Sandbox Code Playgroud)