[plt-scheme] Are macros a programming language?
On 10/21/07, Carl Eastlund <cce at ccs.neu.edu> wrote:
> Why aren't they Scheme?
My thought was that it generates Scheme, but it is not Scheme.
For example I wanted to iterate over a list of arguments. I couldn't
(which only means I don't know how not that it is impossible) just
iterate over the n-ary arguments and emit the desired code.
I ended up recursively matching patterns to perform iteration (though
Chongkai Zhu showed me a nicer way); the iteration didn't look like
Scheme:
((_ name)
(begin
(if (not (identifier? (syntax name)))
(raise-syntax-error
#f
"property names must be identifiers, not expressions"
(syntax name)))
(syntax
(begin
(define property-name null)
(define/public name
(case-lambda
[() property-name]
[(value) (set! property-name value)]))))))
((_ name names ...)
(syntax
(begin
(property name)
(property names ...))))))