emacs - elisp ,将函数作为参数传递并调用它,发生 Eval 错误,为什么?

标签 emacs elisp

我的 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/

相关文章:

vim - 如何同时操作更多的 Emacs 缓冲区?

emacs - 需要一个 Elisp 函数来推回输入

emacs - 如何区分目录和文件

emacs - 让 Emacs 通过 Socks 代理访问 HTTPS

c++ - 使用Doxygen制作Visual Studio和Emacs的文档

emacs - 如何在 Emacs/Elisp 中查找并插入多行的平均值?

windows - 如何在不丢失窗口最大化状态的情况下删除 Windows .emacs 中的工具栏?

emacs - emacs 中的多行语句

emacs - 用 %H 格式化时间差

emacs 查询替换正则表达式倒置