The docs you quoted seem to answer your question.

Not all lists are valid seqs. In particular, the empty list is a valid list
but not a valid seq. So if the empty list implemented ISeq, it would be
lying. If the empty list implements IPersistentList, then IPersistentList
can't implement ISeq.

Phil
On Sep 3, 2012 12:44 AM, "Andrei Zhlobich" <a.zhlob...@gmail.com> wrote:

> Why IPersistentList doesn't extend ISeq?
>
> Clojure docs say:
>  >> Lists are collections. They implement the ISeq interface directly
> (except for the empty list, which is not a valid seq)
>
> At this moment EmptyList implements ISeq, but PersistentList doesn't. It
> seems very strange for me.
> Also PersistentQueue implements IPersistentList, but semantically it is
> not a list.
>
> I think we can do 2 changes in hierarchy:
> 1) extend IPersistentList from ISeq;
> 2) extend PersistentQueue directly from IPersistentStack instead of
> IPersistentList.
>
> Is it possible?
>
>  --
> 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

-- 
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