yea true, the full sequence has to be realized before it is shuffled .. but however the thing is that I am only interested in the first couple of elements of the shuffled sequence. That is the lazy part I am talking about. But I guess I won't be winning much there.. And again, I think I would have got better performance if I had passed in a "Counted" collection which was not true in my case.. Sunil.
On Mon, Jul 11, 2011 at 4:27 PM, Tassilo Horn <[email protected]>wrote: > Sunil S Nandihalli <[email protected]> writes: > > Hi Sunil, > > > I think a lazy version of shuffle would be a good addtion to the > > core. I tried googling for one and found > > http://ytakenaka.blogspot.com/2011/05/lazy-shuffle-clojure.html which > > was infact slower than original shuffle and was unable to reproduce > > the performance claims made there in. > > I think there is no way to implement a "good" lazy version of shuffle. > Correct shuffling, i.e., the result should be a real pseudo-random > permutation of all elements, can only be defined on finite seqs anyway. > And there, one has to realize the given seq. In the code you cite, > there's > > (defn lazy-shuffle [lst fetch-len] > (let [len (count lst) > ^^^^^^^^^^^ > > which does exactly that. So here only the cheap creation of the > shuffled seq is lazy, but the possibly expensive calculation of the > given seq is (and has to be done) directly. > > Bye, > Tassilo > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to [email protected] > Note that posts from new members are moderated - please be patient with > your first post. > 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 -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. 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
