I've seen this, I was still curious if the reason I was facing the issue 
was that let is simply the wrong tool for my use case or not.

If let is the correct tool, I would propose that clojure.core should had a 
try/catch where the catch is in scope of the try. I feel the reason this is 
contrived is accidental complexity due to limitations of Clojure. In Java, 
this isn't an issue, because you're variables would be mutable:


Object a;
Object b;
Object c;
try {
  a = doA(..);
  b = doB(.., a, .., .., ..);
  c = doC(.., .., a, .., b, ..);
} catch {
  // The catch is in scope of a,b,c.
}

Which I feel I can't think of any way in Clojure to do this, which does not 
add accidental complexity. In that, there's nothing to the actual problem 
which requires say the complexity of a let inside a let, a try/catch around 
each steps, binding atoms, delays, promise, volatile and then setting them 
inside the try, etc. All these seems to me like Clojure just adds some 
accidental complexity to this common use case.

What do others think?

On Saturday, 30 September 2017 16:42:48 UTC-7, Marcus Magnusson wrote:
>
> I've used try-let (link below) for this, it's worked great!
>
> https://github.com/rufoa/try-let
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
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 clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to