我使用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
答案 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
部分看到此处的定义。