[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
How does one use a macro in a special form?
From: |
Alan Mackenzie |
Subject: |
How does one use a macro in a special form? |
Date: |
Sat, 28 Jun 2003 13:23:53 +0000 |
User-agent: |
tin/1.4.5-20010409 ("One More Nightmare") (UNIX) (Linux/2.0.35 (i686)) |
In particular, I want to use a macro acm-indent++ within a let (or let*),
something like this:
(let ((a a-binding)
(b b-binding)
,(acm-indent++))
FORMS)
and I want it to expand to this:
(let ((a a-binding)
(b b-binding)
(indent-spaces (concat indent-spaces " ")))
FORMS)
The macro acm-indent++ looks like this:
(defmacro acm-indent++ ()
"Increase the level of indentation in an acm-printf output by binding
indent-spaces.
This form must appear \"comma\"d in a let/let* variable list."
`(indent-spaces (concat indent-spaces " ")))
Thus far, I'm having no luck with it, the value of indent-spaces
remaining unchanged within the let form.
Question: does the "," operator have meaning when not within a backquote
expression?
Is it possible to do what I want to do, and if so, how do I go about it?
Thanks in advance for any help!
--
Alan Mackenzie (Munich, Germany)
Email: aacm@muuc.dee; to decode, wherever there is a repeated letter
(like "aa"), remove half of them (leaving, say, "a").
- How does one use a macro in a special form?,
Alan Mackenzie <=