Hi,

On 29 Okt., 12:11, andrei <andrei.zhabin...@gmail.com> wrote:

> > You could just bind another local variable in the loop form:
> > (loop [ps pairs
> >        ret {}
> >        ffps (ffirst ps)]
> >   (cond (empty? ps) ret
> >         (some-test ffps) (recur (rest ps) (add-to-result ret ffps) (ffirst 
> > (rest ps)))
> >         :true (recur (rest ps) (do-sth-else ret ffps) (ffirst (rest ps)))) )
>
> In this case you have to pass one more parameter to each loop
> iteration, and since you actually don't need this param, that breaks
> loop's semantics.

There's nothing stoping you to put a let in a loop.

(loop [ps  (seq pairs)
       ret {}]
  (let [ffps (ffirst ps)]
    (cond
      (not ps)         ret
      (some-test ffps) (recur (next ps) (add-to-result ret ffps))
      :else            (recur (next ps) (do-sth-else ret ffps)))))

Sincerely
Meikel

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