如何在lisp(sbcl)中查看函数的定义?

yon*_*onh 4 lisp sbcl common-lisp

我用sbcl+emacs+slime.
我在lisp中编写函数,我使用C-c C-ccompile,但我已经删除了它.
我找不到它.我想知道我是如何定义它的.

我试过用function-lambda-expression,但我明白了:

(function-lambda-expression #'b)
T
B
Run Code Online (Sandbox Code Playgroud)

我希望有人能给我一些帮助.非常感谢!


谢谢Vsevolod.如果函数定义在repl,我可以使用(descri #'function-name)get我如何定义函数,但如果我通过C-c C-c定义它,我只是得到source file

我的尝试

Vse*_*kin 9

根据您的调试和优化设置,您可以通过以下方式获取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)))
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看此处的定义Souce form.