You're right about changing the docstring to read ""sequence"
I think the lazy-cat version looses the ability to rotate in reverse, which I've come to love from Ruby. Also, I have found use cases where I want to rotate a period longer than the sequence length. Thanks for the feedback, though. Sean On Apr 21, 11:37 am, Michał Marczyk <[email protected]> wrote: > On 21 April 2010 17:23, Sean Devlin <[email protected]> wrote: > > > I've had to code these guys up a few times: > > Nice functions! > > I'd replace "collection" with "sequence" in the docstrings, though. > (And rename the args accordingly.) > > You can also rewrite rotate as > > (defn rotate [n s] > (lazy-cat (drop n s) > (take n s))) > > which has the built-in assumption that n doesn't exceed the length of > s, but won't force more than (inc n) elements of s before producing > the first item of the result. (Additional forcing might happen due to > chunking issues, of course.) > > As a final remark, I believe that rotate takes constant time to > execute, followed by O(n) time to produce the first element. This is > petty nitpicking, of course. ;-) > > Sincerely, > Michał > > -- > 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 > athttp://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
