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

Reply via email to