On Nov 17, 2:06 am, mb <[EMAIL PROTECTED]> wrote:
> Hi,
>
> On 17 Nov., 02:09, Chouser <[EMAIL PROTECTED]> wrote:
>
> > You could of course work around this by putting your loop in some
> > other function and calling it from inside catch.
>
> In this specific case I used:
> (last (take-while #(not (nil? %)) (iterate #(.getCause %) e)))
>
> However, a separate function would also work. That is not
> the point. One can work around it. But I try to follow the
> principle of least surprise as much as possible. So when
> valid looking code doesn't work for an obscure reason, this
> certainly is a surprise.
>
> I have no problem putting the loop into a dedicated function.
> Or find some equivalent way to express it. However then it
> should be documented somewhere, that this is actually
> necessary. ("for technical reasons loop/recur cannot be
> used in/at/for....")

Yes, it's an arbitrary restriction (due to complexity) which I should
document.

Rich

--~--~---------~--~----~------------~-------~--~----~
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
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to