I've been reconstructing an old programming language.
It originally had a very simple but awkward macro
facility:�� if an identifier was declared as a macro,
whenever it was called, it could inspect/consume as
much of the remaining tokens as it wished and could
splice other tokens in.�� On top of this a very nice
"declarative" macro system was built, which I loved
when I used it.�� Since my implementation is not yet
self-hosting, I've been using higher-order functions
instead, and the more I do this the less I want macros.
You could think of the rewrite rules in VisualWorks
as something resembling macros.�� Come to think of it,
Lukas Renggli, Helvetia, ... found it!