elisp では、ラムダの関数呼び出しが機能するのに、それを適用するとエラーが発生するのはなぜですか?
ELISP> (funcall (lambda ()))
nil
ELISP> (apply (lambda ()))
*** Eval error *** Invalid function: lambda
elisp では、ラムダの関数呼び出しが機能するのに、それを適用するとエラーが発生するのはなぜですか?
ELISP> (funcall (lambda ()))
nil
ELISP> (apply (lambda ()))
*** Eval error *** Invalid function: lambda
私のemacsは別のエラーを出します:
*** Eval error *** Wrong number of arguments: apply, 1
それがすべてを説明していると思います。
Apply には引数を指定する必要があります。(describe-function) の結果を参照してください。
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]