[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
defmacro* usage
From: |
Thierry Volpiatto |
Subject: |
defmacro* usage |
Date: |
Wed, 02 Nov 2011 12:28:44 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.91 (gnu/linux) |
Hi all,
I have an error with following recipe:
#+BEGIN_SRC lisp
(defmacro* test1 (&key (lang 'french))
`(case ,lang
(french (message "Bonjour"))
(english (message "Hello"))))
(test1 :lang 'french)
"Bonjour"
(test1 :lang 'english)
"Hello"
(test1)
Debugger entered--Lisp error: (void-variable french)
(eql french (quote french))
(cond ((eql french (quote french)) (message "Bonjour")) ((eql french (quote
english)) (message "Hello")))
(case french (french (message "Bonjour")) (english (message "Hello")))
(test1)
eval((test1) nil)
eval-last-sexp-1(t)
eval-last-sexp(t)
eval-print-last-sexp()
call-interactively(eval-print-last-sexp nil nil)
(defun* test2 (&key (lang 'french))
(case lang
(french (message "Bonjour"))
(english (message "Hello"))))
(test2 :lang 'french)
"Bonjour"
(test2 :lang 'english)
"Hello"
(test2)
"Bonjour"
#+END_SRC
As you can see, the quoted default argument 'french cause an error with
the defmacro* and work fine with the defun*.
Is it a bug or i misunderstand something?
Thanks.
--
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
- defmacro* usage,
Thierry Volpiatto <=