Be careful with the (filter identity ...) which will also remove "falses" 
from seqs.
(filter identity [nil 2 3 nil false true 4])
=> (2 3 true 4)
Since (identity false) and (identity nil) returns respectively false and 
nil they are BOTH rejected by filter.

This could do the trick:
(filter (comp not nit?) [nil 2 3 nil false true 4])
=> (2 3 false true 4)

On Wednesday, November 17, 2010 2:37:16 AM UTC+1, Luc wrote:

> user=> (time (filter identity [ nil 1 2 nil 4]))
> "Elapsed time: 0.053219 msecs"
> (1 2 4)
>
> user=> (time (remove nil? [ nil 1 2 nil 4]))
> "Elapsed time: 0.065092 msecs"
> (1 2 4)
>
> Choose the flavor your prefer...
>
> Luc P.
>
> Glen Rubin <rubi...@gmail.com <javascript:>> wrote ..
> > What is the fastest way to remove nils from a sequence?
> > 
> > I usually use the filter function, but I see there are other functions
> > like remove that should also do the trick.
> > 
> > -- 
> > You received this message because you are subscribed to the Google
> > Groups "Clojure" group.
> > To post to this group, send email to clo...@googlegroups.com<javascript:>
> > Note that posts from new members are moderated - please be patient with 
> your first
> > post.
> > To unsubscribe from this group, send email to
> > clojure+u...@googlegroups.com <javascript:>
> > For more options, visit this group at
> > http://groups.google.com/group/clojure?hl=en
> Luc P.
>
> ================
> The rabid Muppet
>
>

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