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