[racket] Again on bindings visibility in eval
On Jul 14, 2011, at 11:23 AM, Eli Barzilay wrote:
>>
>> It's simple, it's been explained countless times, it works in many
>> cases.
>
> No, it's broken in pretty much all cases. Give me a single symbolic
> macro and I'll show you how it's broken. (And point out how CL
> bypasses the problem...)
Carl E. conducted a case study on how broken macros are in the Lisp world.
Details: he inspected ALL macros in the code base of ACL2, Applicative
Common Lisp, a theorem-prover version of Common Lisp if you will. They
use macros a lot and have thousands of them. Some seem to work because
they are just abbreviations for other things. BUT when it comes to real
macros, he found a good number of mistakes -- and that in code where
people are keenly aware of problems with scope and effects because they
want to prove theorems about their code. -- Short story: it isn't pretty
in the trivial world of ACL2 macros and I would NEVER EVER take up Eli
on that bet.
-- Matthias (Possibly biased. I imported the word 'hygiene' for macros)