2009/6/14 James Reeves <weavejes...@googlemail.com>: > > On Jun 13, 9:57 pm, Laurent PETIT <laurent.pe...@gmail.com> wrote: >> > The filter and map functions produce lazy seqs, so the sequence is >> > only walked once. >> >> Well, isn't walking 3 different sequences 1 time almost equivalent (in >> terms of computer work) to walking 3 times one sequence ? > > Well, I guess there's the overhead of wrapping it in multiple seqs, > but the logic calculations will be the same regardless of which method > is used. > >> And nevertheless, if I insist, it's not really because there *could* >> be a performance problem (though I guess there will, but only >> benchmark would tell), but rather because the essence of the problem >> seems to be needing a simple reduction with early break capability, >> and no more :-) > > Well, I kinda disagree here. It seems to me that this: > > (defn interesting? [pixels c] > (> c (count (take c (filter in-interval? pixels)))) >
I can't but agree that it is less verbose. But I maintain (and then will let you 'cause I'm on holidays from right after this last email :-) that the initial problem calls for a modified reduce :-) > Is more straightforward than: > > (defn interesting? [pixels c] > (reduce (fn [counter pixel] (if (in-interval? pixel) (inc counter) > counter)) > 0 > pixels > (partial < c))) > > - James > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---