在elisp中如何从变量中提取值

时间:2013-02-04 15:47:51

标签: elisp emacs23

我正在进行第一个练习部分(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)

1 个答案:

答案 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在该上下文中未绑定。