[bitc-dev] Call by need?

Jonathan S. Shapiro shap at eros-os.org
Thu Sep 9 22:10:29 PDT 2010


On Thu, Sep 9, 2010 at 4:30 PM, Raoul Duke <raould at gmail.com> wrote:

> short-circuiting boolean ops in
> scheme/lisp don't have to be "built-ins", can be macros, no? they are
> in the Clojure sources, anyway. (just thinking of arguments i've heard
> for /not/ having laziness be the default...


Yes and no. There are two differences (at least) to consider:

1. A macro hasn't even been evaluated when formed, which means that bindings
for its variables aren't established. This can lead to significant
behavioral differences between macros and fexprs in some cases.

2. Macros allow arbitrarily rich rewriting. Fexprs are much more
constrained. Macros *may* be too powerful for safety from a security point
of view.

shap
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.coyotos.org/pipermail/bitc-dev/attachments/20100909/48d914aa/attachment.html 


More information about the bitc-dev mailing list