[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: need for macros (was Re: Icon)
Scheme 84 had this, and I don't see why this isn't in most Lisps.
Still, I believe that some features should not be in programming languages
because neither the designers nor the super programmers nor the average
programmers know how to reason about them systematically. I have come to
believe that 3D macros are one such thing. They co-mingle two radically
different phases: compilation and execution. You cannot possibly deploy a
program that is expanded like that on a different machine. The very idea
doesn't make sense. I guess in short, I believe in the strict separation of
passes. Otherwise I am open to pretty much everything :-)
-- Matthias
> Date: Fri, 21 Dec 2001 15:38:55 -0800 (PST)
> From: Paul Graham <paulgraham@yahoo.com>
> Cc: ll1-discuss@ai.mit.edu
> Content-Type: text/plain; charset=us-ascii
>
>
> --- Matthias Felleisen <matthias@ccs.neu.edu> wrote:
> >
> > Yes, Dan used to assign this as a puzzle in 1983/84 and I posed it to
> > Guy
> > at my first POPL: it's called ONCE. You are creating a 3-dimensional
> > value
> > that tunnels its way from expansion to run-time. Is this a good
> > thing?
>
> Sure, why not? It solves my problem in this case, and solving
> problems is what language are for.
>
> In Arc it is explicitly part of the language that you can insert
> objects (not just expressions) into macroexpansions. Also
> that anything that isn't a list or a symbol evaluates to itself.
>
> I'm not sure if/which other Lisps have done this before, but
> it gives you a small but significant boost in expressive power.
> It may also help make programs faster, because it means you
> can build things at compile time that would otherwise have to
> be built at runtime.
>
> Of course if people don't want to do this they don't have to.
> Arc's philosophy is, let the programmer decide.
>
> --p "Arc: It's not just free, it's libertarian!" g
>
>
> __________________________________________________
> Do You Yahoo!?
> Send your FREE holiday greetings online!
> http://greetings.yahoo.com
>