On 9/1/10 1:40 PM, Jonathan S. Shapiro wrote:
> Now the reason I am raising this is that many examples of macros can be
> turned into procedures in a language that implements call-by-need.

Indeed. This is often advocated as one of the reasons for 
lazy-by-default in Haskell. Laziness allows you to implement most 
control structures directly in the language, rather than having them as 
built-ins: short-circuiting boolean ops, if-then-else, do-while,...

I'm sure you've no plans to make laziness the default, but it's 
definitely helpful to have as a primitive part of the language instead 
of relying on built-ins (e.g., if-then-else in C, or the (unit->) hack 
in OCaml) in order to recreate it. It would be nicer to have it as a 
first-class part of the language and captured in the type system, rather 
than having a separate macro system distinct from the function system IMO.

-- 
Live well,
~wren
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to