[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.
More information about the bitc-dev