如何在Emacs中构建函数关联列表?

时间:2013-12-26 10:46:39

标签: emacs lisp elisp

我想做这样的事情:

'((function1 . '(lambda (args) "DOCSTRING" ))
  (function2 . '(lambda (args) "DOCSTRING" )))

但是“点”只是打开它后面的东西:

((function1 quote (lambda (args) "DOCSTRING")) (function2 quote (lambda (args) "DOCSTRING")))

我知道它的工作原理应该如此,但在这种情况下如何纠正呢? 这样我就可以用钥匙来获取功能了。

1 个答案:

答案 0 :(得分:1)

lambda自我引用:

(setq falist
      '((function1 . (lambda (args) "DOCSTRING" 1))
        (function2 . (lambda (args) "DOCSTRING" 2))))
(funcall (cdr (assoc 'function2 falist)) 1)
; => 2