Understanding sequence abstraction

2010-05-30 Thread ka
Hi Clojurians, I have some conceptual questions on the sequence abstraction. I understand that (seq coll) will give me a sequence. coll maybe be a list, vector, map, set, LazySeq or nil. 1. In case coll is a LazySeq why does (seq coll) realize its first element? I thought seq just did a type

Re: Understanding sequence abstraction

2010-05-30 Thread Richard Newman
1. In case coll is a LazySeq why does (seq coll) realize its first element? I thought seq just did a type conversion and all of list, vector .. etc implemented Seqable or something. Because seq is defined as returning nil for an empty sequence. The only way to find that out for a lazy

Re: Understanding sequence abstraction

2010-05-30 Thread Joost
On May 30, 8:11 pm, Richard Newman holyg...@gmail.com wrote: 2. Why is there no other way to determine an empty coll except (not (seq coll)). user= (empty? []) true And in fact, the docs for (empty?) say: Please use the idiom (seq x) rather than (not (empty? x)) Perhaps the seq docs