Как создать список ассоциаций в Emacs?

Я хочу сделать что-то вроде этого:

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

Но "точка" просто открывает то, что стоит за ней:

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

Я знаю, что это работает так, как должно, но как исправить это в этом случае? Чтобы я мог получить функции с помощью ключа.

1 ответ

lambda self-quotes:

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

licensed under cc by-sa 3.0 with attribution.