Don't dismiss unhygienic macros: they are way more advanced than the kind of text-to-text rewriting with naive lexing and parsing that is the common kind of "metaprogramming" in mainstream circles.
As a Common Lisper, most of metaprogramming was done with manually-hygienic macros, using gensym.
-
-
Shouldn't they be called "semi-hygienic" (or "gensymi-higienic")? I don't think they can handle cases like (defmacro (m a b) (list a b)) (let ((list +)) (m 1 2)) properly.
-
In Common Lisp, this issue is usually solved by the two "list" symbols being in separate packages: you just don't rebind things from other packages, unless they are special (dynamically-bound) *variables* (with earmuffs).
- 1 more reply
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.
Read my blog!