quasiquote

Francois-Rene Rideau Francois-Rene Rideau <fare@tunes.org>
Fri Jul 12 03:43:04 2002


On Mon, Jun 24, 2002 at 04:45:20PM +0100, Alexis Read wrote:
> It seems to me that quasiquote and unquote superseed quote in a
> partially-evaluated environment ie. eval and kwote are 'eager', and
> quasiquote and unquote are lazy, with quote having no use.
1) It's not about being lazy or not - it's about manipulating
 either the value denoted by an expression, or a structure representing
 its syntax. lazy is about manipulating a shared on-going computation
 denoted by the expression.
2) quote is still verily useful in combination with quasiquote.
 If you've never used `',a then you've never defined defining macros.

> On the subject of module systems, macros seem to make little sense in a
> partially evaluated system - everything should be defined for runtime
> execution with a set of 'caching' or state attributes (for late binding).
I disagree, macros (and more generally, compile-time reflection),
can always and will always be able to do more things
than whatever base language without macros there is below.
Note that partial evaluation is semantically equivalent to currying.

See my reply to Matthias Blume's challenge about
the utility of macros in a higher-order functional language:
	http://groups.google.com/groups?lr=&ie=UTF-8&selm=87lmcwlbnh.fsf%40Samaris.tunes.org&rnum=1

Note: as eihrul is rediscovering, once bootstrapped, a compiler can be done
completely with macros and special forms that amount to compile-time
reflection.

[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
[  TUNES project for a Free Reflective Computing System  | http://tunes.org  ]
Ceci n'est pas une thèse -- c'est seulement une impression d'une thèse.
	-- René Magritte