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