1
为什么这是SBCL中的错误?你如何调用传递给你的函数的lambda?为什么这是SBCL中的错误?
* (defun call-foo (foo) (foo))
; in: DEFUN CALL-FOO
; (SB-INT:NAMED-LAMBDA CALL-FOO
; (FOO)
; (BLOCK CALL-FOO (FOO)))
;
; caught STYLE-WARNING:
; The variable FOO is defined but never used.
; in: DEFUN CALL-FOO
; (FOO)
;
; caught STYLE-WARNING:
; undefined function: FOO
;
; compilation unit finished
; Undefined function:
; FOO
; caught 2 STYLE-WARNING conditions
CALL-FOO
+1感谢提到'funcall'。这是否意味着'funcall'不会进行静态类型检查? (有没有办法在确保静态类型检查的同时调用lambdas?) – Mehrdad
@mehrdad:funcall是一个函数。 '函数'不做'静态类型检查'。编译器可能会。但是,你需要告诉编译器关于类型的一些东西。你确定要使用Lisp吗? –
那么,介绍我到SBCL的是[这个答案](http://stackoverflow.com/questions/18031009),但它似乎不像我预期的那样工作。谢谢(你的)信息。 – Mehrdad