[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: need for macros (was Re: Icon)

--- 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!