
"Keith" == Keith Wansbrough
writes:
Keith> Jerzy Karczmarczuk
Macros in Scheme are used to unfold n-ary control structures such as COND into a hierarchy of IFs, etc. Nothing (in principle) to do with laziness or HO functions.
Keith> Isn't this exactly the reason that macros are less necessary in Keith> lazy languages? Keith> In Haskell you can write Keith> myIf True x y = x Keith> myIf False x y = y Sure, but you're relying on pattern matching to implement the semantics of myIf, which already is a generalized conditional. In Scheme, where pattern matching is not primitive, you can get it through a macro. The same holds for things like DO notation or list comprehensions, where apparently lazy evaluation by itself doesn't help implementing convenient syntax atop a more primitive underlying notion. -- Cheers =8-} Mike Friede, Völkerverständigung und überhaupt blabla