[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: choosing a language for your audience or macros vs syntax?
Macros exist for the very same reason that lambda exists (or Lambda):
to abstract over patterns.
lambda abstracts over values.
Lambda abstracts over types.
Syntax abstracts over syntax.
A phase separation (theorem) should ensure that all three of them
abstract at the right time and in a way that doesn't affect later
time:
lambda was easy.
Lambda took some time, but if you devise the calculus properly
(called XML way before other guys grabed those letters), you
can work that out. This gives us Functors and ParaPolymorphism
in ML.
Syntax took some time, but I think Matthew Flatt's paper @ ICFP
nailed this one.
All of these of course abstract relative to some core language,
and then the expressive power of that core language matters.
To claim that just because lambda x. is spelled \x. eliminates
the need for syntatic abstraction is equivalent to the claim
that just because emacs is good at copy/paste and keyboard
macros we don't need function definitions in any programming
language.
Think about this. -- Matthias