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

时间:2015-11-14 09:44:04

标签: lisp common-lisp sbcl

我使用sbcl+emacs+slime 我在lisp中编写函数, 我使用C-c C-c编译,但我已经删除了它 我无法找到它。我想知道如何定义它。

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

(function-lambda-expression #'b)
T
B

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

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

My attempt

1 个答案:

答案 0 :(得分: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)))

您可以在Souce form部分看到此处的定义。