On 5月5日, 下午9时43分, Krukow <karl.kru...@gmail.com> wrote: > On May 5, 2:54 pm, Robert Luo <robort...@gmail.com> wrote: > [snip] > > > (repeated-seq #(range % 5) 0) > > > the elements are:0 1 2 3 4 4 5 6 7 8 8... > > I think you mean, > > (def s (repeated-seq #(range % (+ % 5)) 0) )
Nope. The code is what I want to do. The repeated-seq is going to act as repeatedly. > > > However, I want to get rid of the duplicated index element (4, 8 etc), > > e.g. > > To produce0 1 2 3 4 5 6 7 8 9 > > > But when I insert a rest into lazy-seq, the function just hung up. > > How can I make this happen? > > I don't know if this is what you meant, but: > > I think it depends on where you put the 'rest' > > Try: > (defn repeated-seq > [f start] > (let [coll (f start)] > (concat coll (lazy-seq (rest (repeated-seq f (last coll))))))) > > As opposed to > > (defn repeated-seq > [f start] > (let [coll (f start)] > (concat coll (rest (lazy-seq (repeated-seq f (last coll))))))) > > it isn't particularly efficient, though.. Both forms can not work. Sorry for not paste them in my original post. > > /Karl > > -- > 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 > 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 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