[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: elisp - anonymous function in an association list?
From: |
Tassilo Horn |
Subject: |
Re: elisp - anonymous function in an association list? |
Date: |
Thu, 29 Nov 2007 16:41:36 +0100 |
User-agent: |
Gnus/5.110007 (No Gnus v0.7) Emacs/23.0.50 (gnu/linux) |
apatheticagnostic <apatheticagnostic@gmail.com> writes:
Hi,
> Both calls fail, with an error message like so:
>
> for "b": Debugger entered--Lisp error: (invalid-function ((function
> (lambda nil (message "B worked too!")))))
>
> for "a": Debugger entered--Lisp error: (invalid-function ((quote
> (lambda nil (message "We worked!")))))
This works:
--8<---------------cut here---------------start------------->8---
(defvar sample-alist '(("a" (lambda ()
(message "We worked!")))
("b" (lambda ()
(message "B worked too!")))))
(defun test-call (x)
(funcall (cadr (assoc x sample-alist))))
(test-call "a")
(test-call "b")
--8<---------------cut here---------------end--------------->8---
First, you don't need to quote the lambdas inside the list, which is
already quoted. Second in `test-call' you don't want the cdr but the
car of the cdr (= cadr) from the assoc.
Bye,
Tassilo
Re: elisp - anonymous function in an association list?,
Tassilo Horn <=