如何查看 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

My attempt

根据您的调试和优化设置,您可以通过 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 部分看到这里的定义。