On Jun 9, 2015, at 3:51 PM, Leon Grapenthin <[email protected]> wrote:
> Syntactically though, one could worry that the additional bindings would be
> read as regular let bindings and worry about the language clarity.
One of the main points that I seem to recall from previous discussions has been
around the actual behavior of this sort of code (if it was allowed):
(if-let [a (some-a-fn)
b (some-b-fn)
c (some-c-fn)]
(some-t-fn)
(some-f-fn))
Should it short-circuit as soon as one of `a`, `b`, or `c` is falsey? Should it
evaluate all three and require all three to be truthy? Should it evaluate all
three and base the test on just the last one (a reasonable alternative
semantic)? If `a` is truthy and `b` is falsey, why shouldn’t `a` be available
in the false arm of the `if`? And, related, should the `b` and `c` expressions
have access to the (truthy) values of `a`?
There are arguments in favor of (and against) each position and thus no clear
consensus on what to choose.
Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
"Perfection is the enemy of the good."
-- Gustave Flaubert, French realist novelist (1821-1880)
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.