[bitc-dev] Call by need?

wren ng thornton wren at freegeek.org
Fri Sep 3 21:39:13 PDT 2010


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


More information about the bitc-dev mailing list