我想了解 nqthm-1992 代码,这是一个古老的定理证明器。
我使用 ECL 作为 lisp 解释器,并被建议使用 slime 包来找出常见的 lisp 定义和解释。它在常见的 lisp 声明上效果很好,但在 nqthm 声明上却失败了。events.lisp
如果我将 nqthm 加载到我的 emacs 缓冲区中,我该如何配置它以便找到所有声明?
更新:根据建议,我将 emacs-slime 重新配置为使用sbcl。尝试查找 ITERATE 的定义时,它给出了以下消息:
Unknown symbol: ITERATE [in #<PACKAGE "COMMON-LISP-USER">]
[Condition of type SIMPLE-ERROR]
Restarts:
0: [*ABORT] Return to SLIME's top level.
1: [TERMINATE-THREAD] Terminate this thread (#<THREAD "worker" RUNNING {1004942B81}>)
Backtrace:
0: (SWANK::PARSE-SYMBOL-OR-LOSE "ITERATE" #<PACKAGE "COMMON-LISP-USER">)
1: ((LAMBDA ()))
2: (SWANK::CALL-WITH-BUFFER-SYNTAX NIL #<CLOSURE (LAMBDA #) {1004948CA9}>)
3: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK:DESCRIBE-SYMBOL "ITERATE") #<NULL-LEXENV>)
4: (SWANK:EVAL-FOR-EMACS (SWANK:DESCRIBE-SYMBOL "ITERATE") "\"USER\"" 2)
5: ((LAMBDA ()))
6: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<FUNCTION (LAMBDA #) {1006D4AFF9}>)
7: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK) #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<FUNCTION (LAMBDA #) {1006D4AFF9}>)
8: ((LAMBDA ()))
9: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK369]374))
10: ((FLET SB-THREAD::WITH-MUTEX-THUNK))
11: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300))
12: (SB-THREAD::CALL-WITH-MUTEX ..)
13: (SB-THREAD::INITIAL-THREAD-FUNCTION)
14: ("foreign function: #x41E240")
15: ("foreign function: #x416117")
我怎样才能使这项工作?