> Sigh, I wish the API docs were more helpful in this case.
>
> clojure.core/seq?
> ([x])
>  Return true if x implements ISeq
>
> It's asking a lot from me to know whether vectors implement ISeq.

If you don't know, you can always just ask the language :)

user> (ancestors (class [1 2 3]))
#{clojure.lang.IPersistentStack clojure.lang.Streamable  
java.io.Serializable java.lang.Runnable clojure.lang.IFn  
clojure.lang.IObj clojure.lang.Associative clojure.lang.Reversible  
clojure.lang.Obj clojure.lang.Sequential java.util.RandomAccess  
java.util.List clojure.lang.IPersistentVector  
clojure.lang.APersistentVector clojure.lang.AFn java.lang.Object  
clojure.lang.IPersistentCollection java.lang.Iterable  
java.lang.Comparable java.util.Collection java.util.concurrent.Callable}

user> (contains? (ancestors (class [1 2 3])) clojure.lang.ISeq)
false

But, I agree; the seq/coll distinction can be very confusing at first,  
especially when faced with seemingly contradictory outputs like

user> (= '(1) [1])
true

user> (= '() [])
false

user> {'(1) true}
{(1) true}

user> (get *1 [1])
true

user> (hash-map '(1) true)
{(1) true}

user> (get *1 [1])
nil


-Jason

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