【发布时间】:2014-07-18 00:01:36
【问题描述】:
我想用 Emacs Lisp 定义一个累加器列表并编写以下代码,但我得到一个错误,说 initV 是一个 void 变量。似乎initV 没有在函数define-accum 中进行评估。我在哪里犯了错误? (我只是想知道为什么,虽然我知道还有其他方法可以达到我的目标。)
(defun define-accum (name initV)
(defalias name (lambda (v) (+ v initV))))
(setq accums '((myadd1 . 1)
(myadd2 . 2)))
(dolist (a accums)
(define-accum (car a) (cdr a)))
(message "result = %d" (+ (myadd1 1) (myadd2 1)))
【问题讨论】:
标签: emacs elisp metaprogramming