Я хотел бы понять код nqthm-1992, это архаичный доказатель теорем.
Я использую ECL в качестве интерпретатора lisp, и мне посоветовали использовать пакет slime для выяснения общих определений и объяснений lisp. Это хорошо работает с объявлениями common 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")
Как я могу заставить это работать?
DEFEVENT
? В конечном счете, это макросы, если я правильно понимаю, поэтому я ожидаю, что это просто сработает. Согласно руководству, поддержка ECL в SLIME не самая лучшая. Может быть, попробовать использовать sbcl? - person Samuel Edwin Ward   schedule 02.05.2014iterate
определено в nqthm.lisp. Вы скомпилировали и загрузили этот файл? - person Samuel Edwin Ward   schedule 02.05.2014