如何查看 lisp (sbcl) 中函数的定义?
How can I view the definition of a function in lisp (sbcl)?
我用sbcl+emacs+slime
.
我用 lisp 写了一个函数,
我用C-c C-c
编译,但我已经删了
我找不到它。我想知道我是怎么定义的。
我尝试使用 function-lambda-expression
,但我明白了:
(function-lambda-expression #'b)
T
B
希望有人能提前给我一些help.Thanks!
谢谢 Vsevolod。
如果函数在 repl
中定义,我可以使用 (descri #'function-name)
获取我定义函数的方式,但如果我通过 C-c C-c
定义它,我只会得到 source file
根据您的调试和优化设置,您可以通过 describe
:
获取它
CL-USER> (defun f (a) (print a))
F
CL-USER> (describe #'f)
#<FUNCTION F>
[compiled function]
Lambda-list: (A)
Derived type: (FUNCTION (T) (VALUES T &OPTIONAL))
Source form:
(SB-INT:NAMED-LAMBDA F
(A)
(BLOCK F (PRINT A)))
您可以在 Souce form
部分看到这里的定义。
我用sbcl+emacs+slime
.
我用 lisp 写了一个函数,
我用C-c C-c
编译,但我已经删了
我找不到它。我想知道我是怎么定义的。
我尝试使用 function-lambda-expression
,但我明白了:
(function-lambda-expression #'b)
T
B
希望有人能提前给我一些help.Thanks!
谢谢 Vsevolod。
如果函数在 repl
中定义,我可以使用 (descri #'function-name)
获取我定义函数的方式,但如果我通过 C-c C-c
定义它,我只会得到 source file
根据您的调试和优化设置,您可以通过 describe
:
CL-USER> (defun f (a) (print a))
F
CL-USER> (describe #'f)
#<FUNCTION F>
[compiled function]
Lambda-list: (A)
Derived type: (FUNCTION (T) (VALUES T &OPTIONAL))
Source form:
(SB-INT:NAMED-LAMBDA F
(A)
(BLOCK F (PRINT A)))
您可以在 Souce form
部分看到这里的定义。