我正在进行第一个练习部分(Emacs Lisp Intro)并且我没有得到它; 3.12练习:
编写一个测试当前值的函数 `fill-column'大于传递给函数的参数,如果是,则打印相应的消息。
我有:
(defun is-fill-equal (number)
"Is fill-column greater than the argument passed to the function."
(interactive "p")
(if (= fill-column number)
(message "They are equal.")
(message "They are not equal."))
无论我尝试什么,我都会收到此错误:
调试器输入 - Lisp错误:( void-variable number)
答案 0 :(得分:3)
最后你缺少一个括号。尝试:
(defun is-fill-equal (number)
"Is fill-column greater than the argument passed to the function."
(interactive "p")
(if (= fill-column number)
(message "They are equal.")
(message "They are not equal.")))
错误消息的原因是您可能在函数定义的末尾C-x e
。由于缺少一个括号,Emacs认为您要评估的表达式为(if (= fill-column number) ...)
,而number
在该上下文中未绑定。