Lambda the Ultimate

inactiveTopic More Macro Discussion
started 1/18/2002; 12:50:51 PM - last post 1/19/2002; 11:19:32 AM
Brent Fulgham - More Macro Discussion  blueArrow
1/18/2002; 12:50:51 PM (reads: 321, responses: 2)
(I've moved this to a top-level discussion because it was buried too far into the "Haskell & Macros" discussion to be seen)

I'll be the first to admit that Slashdot is a poor source for hard factual data, but there is an interesting link to how ITA Software used Common Lisp for their airline routing software (used by Orbitz among others.)

The inimitable Paul Graham has a copy of some e-mail describing why ITA selected Common Lisp, their design challenges, etc.

What I found most interesting is that they did not choose CL for its garbage collection, recursive programming techniques, or ability to evaluate arbitrary code fragments, but rather for its MACRO facilities.

That's right -- they use an imperitive, destructive (set!), and altogether un-functional approach to this project, but found that CL was still a big win because the MACRO facilities allowed them to create useful syntax that facilitated short, readable programs.

So -- I'd say that MACROS are quite useful. And the reasons ITA cites hold true even in the case of a lazy language.

Ehud Lamm - Re: More Macro Discussion  blueArrow
1/19/2002; 11:04:12 AM (reads: 352, responses: 0)
The ITA email is real interesting. Not really from a PL perspective, just programmer/hacker/SE curiousity.

The argument in favor of macros is put even more forcefully in the Beating the Averages paper (which was dicussed here some time ago). However both these srouces don't give examples. Now, I am a great fan of arguments from authority, but sometimes people want me to give them concrete examples...

AFAIK, ITA had a special OS running their mainframes. Can't recall the name of it just now.

Ehud Lamm - Re: More Macro Discussion  blueArrow
1/19/2002; 11:19:32 AM (reads: 360, responses: 0)
BTW: This page give more concrete details about Graham's Viaweb use of macros and such.