On Mon, 25 Aug 2008, Reini Urban wrote: > Reini Urban schrieb: > > 2008/8/24 Allison Randal <[EMAIL PROTECTED]>: > > > Reini Urban wrote:
> To clarify my bold statement: > The ALGOL-like syntax is not "sane" because, > * it is hard to parse, > * it forbids our keywords AND, NOT and OR as config_hash keys > and platform names. With lisp syntax there's a clear distinction > between operator and arguments, with mixed arg op arg syntax > it is not clear and as hard to understand as spoken language. > > #+(and foo (not bar)) is a well-established reader-macro syntax in > lisp and a general life-safer in lisp, compared to less developed languages. If parrot were written in lisp, this might indeed be compelling. It's not, however. It's written primarily in C and perl, which tend to be more Algol-like. In my own case, I would have no idea what #+(and foo (not bar)) meant unless I had read your explanation that it was some sort of "reader-macro" syntax. And even that only gives me a vague understanding of what it actually is. What we did in perl5's build system was to recognize that we didn't have to invent or borrow any new syntax at all. The languages we were using to write the Makefiles (namely /bin/sh and perl) already had sophisticated interpolation and conditional syntax capabilities. We used here-documents and interpolation instead of macro substitution. We used the language's built-in conditional and flow control syntax to express complex ideas. -- Andy Dougherty [EMAIL PROTECTED]