2013-04-13 19 views
3

在elisp中,爲什麼要調用lambda工作,但應用它會產生錯誤?funcall vs適用於elisp中的lambda

ELISP> (funcall (lambda())) 
nil 
ELISP> (apply (lambda())) 
*** Eval error *** Invalid function: lambda 

回答

3

我的emacs給出了另一個錯誤:

*** Eval error *** Wrong number of arguments: apply, 1 

我認爲這說明了一切。

+0

呀呼(適用(拉姆達())無)的作品。當SO讓我回答時,會標記答案。 – rhlee

3

申請必須給出的參數,請參閱(形容函數)結果:

apply is a built-in function in `C source code'. 

(apply FUNCTION &rest ARGUMENTS) 

Call FUNCTION with our remaining args, using our last arg as list of args. 
Then return the value FUNCTION returns. 
Thus, (apply '+ 1 2 '(3 4)) returns 10. 

[back]