[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
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the bitc-dev