[CLJ-401] Add seqable? predicate Created: 13/Jul/10 Updated: 07/Jun/16 Resolved: 07/Jun/16
|Fix Version/s:||Release 1.9|
Many people have found a need for this function and one exists in clojure.core.incubator that is sometimes used and/or copied elsewhere:
This predicate would be valuable to have as it is not a simple check on Seqable since RT.seq() covers a number of additional cases. Alternatively, there could be a protocol for this that could be extended to both Seqable as well as other supported Java use cases turning this into a satisfies? check.
Old prior discussion (although this also comes up regularly on #clojure):
|Comment by Assembla Importer [ 24/Aug/10 9:19 AM ]|
Converted from http://www.assembla.com/spaces/clojure/tickets/401
|Comment by Jeremy Heiler [ 26/Jul/14 5:37 PM ]|
A reference to the implementation in contrib: https://github.com/clojure/clojure-contrib/blob/master/modules/core/src/main/clojure/clojure/contrib/core.clj#L78
It seems like that the only thing that is inconsistent with RT.seqFrom is that seqable? checks for String instead of CharSequence.
|Comment by Alex Miller [ 03/Aug/15 10:11 AM ]|
In the proposed patch referenced in the ticket above, if seqable? could be used in place of sequential? flatten could be more powerful and work with maps/sets/java collections. Here's how it would look:
And an example:
|Comment by Alex Miller [ 07/Jun/16 11:31 AM ]|
This was just added to master in https://github.com/clojure/clojure/commit/58227c5de080110cb2ce5bc9f987d995a911b13e and will be in 1.9.0-alpha5.