I kind of agree that loop acts as a point for recursion, however if
the auo-TCO thing is possible, writing naturally recursing code would
become possible.
I think that recur could still exist independent like what other said.
On Jan 18, 2:55 am, Richard Newman <holyg...@gmail.com> wrote:
> > Other people prefer having a form to explicitly request recursion.  
> > That way, you are able to say explicitly in your code: I expect this  
> > to be TCO-able, and have the compiler tell you if you are mistaken.
>
> Another advantage of the explicit form is that it can be used  
> anonymously with `loop` as well as within functions (named or  
> otherwise).
>
> user=> (loop [i 10 acc 0] (if (= i 0) acc (recur (- i 1) (+ i acc))))
> 55
> user=> (defn foo [i acc] (if (= i 0) acc (recur (- i 1) (+ i acc))))
> #'user/foo
> user=> (foo 10 0)
> 55
>
> Much neater than having to introduce some function or other construct  
> to act as a recursion point, and in many cases clearer than an  
> iteration construct. In Scheme you need a 'thing' to call.
-- 
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

Reply via email to