Clone seq in clojure

How to lazily "clone" seq in Clojure. Something along the lines

(let [[s1 s2] (clone-seq s)] ...) 

such that s1 and s2 are independent sections supported by s?

+4
source share
1 answer

"cloning" seq feels uneasy: with normal use of Clojure, you expect seqs to be unchanged, so it should be fine to just do something like:

 (let [s1 s s2 s] .....) 

If your seqs are mutable or have some kind of side effects when passed, then you are likely to run into problems for various reasons: mutable seqs are generally not suitable for a functional language such as Clojure. You will encounter many odd problems: do you want side effects to happen twice when you β€œclone” seq, for example? Do you need a deep clone of all the content?

+9
source

All Articles