我的 elisp 程序是:
(defun test (f x) (f x))
(test (lambda (x) (* x x)) 10)
运行,出现错误:
* Eval error * Symbol 的函数定义无效:f
最佳答案
Emacs 是 lisp-2,因此对函数和变量有不同的命名空间。所以,在测试中,第二个(f x)中的f和参数列表中的(f)不一样。
尝试
(defun test (f x) (funcall f x))
一切都很好。
关于emacs - elisp ,将函数作为参数传递并调用它,发生 Eval 错误,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20679541/