Re: fastest way to remove nils

2012-10-26 Thread kevin roth
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

Re: fastest way to remove nils

2012-10-26 Thread Moritz Ulrich
(filter (comp not nit?) [nil 2 3 nil false true 4]) - (remove nil? [...]) On Fri, Oct 26, 2012 at 12:53 PM, kevin roth kevin.c.zucker...@gmail.com wrote: 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

Re: fastest way to remove nils

2012-10-26 Thread Softaddicts
I avoid making explicit distinctions between false and nil in my code. In Clojure a falsy value is either nil or false. In interop I ensure that null and false when returned in the upper layers are made consistent (including Boolean objects set to false). Too much potential trouble in my

Re: fastest way to remove nils

2012-10-26 Thread kevin roth
The difference between nil and false is really handy in some cases and for many people removing nil (or keeping not-nil) values from a seq is not removing falsy values. I just wanted to point out the issues that may arise from a blind use of (filter identity [...]) ;) On Friday, October 26,

Re: fastest way to remove nils

2012-10-26 Thread Softaddicts
No problem, however this nuance has broader implications than just this code snippet :) If you pass false and nil values to a library and expect them to be processed differently, you may end up with a big surprise. Luc The difference between nil and false is really handy in some cases and

Re: fastest way to remove nils

2010-11-18 Thread Glen Rubin
So, it seems the way I was removing nils using filter was already the best way. still nice to learn about the keep fn. thx! On Nov 17, 8:38 pm, Ken Wesson kwess...@gmail.com wrote: On Wed, Nov 17, 2010 at 7:55 PM, Robert McIntyre r...@mit.edu wrote: So, just to be clear, user (def nil-seq

Re: fastest way to remove nils

2010-11-18 Thread Ken Wesson
On Thu, Nov 18, 2010 at 10:47 AM, Glen Rubin rubing...@gmail.com wrote: So, it seems the way I was removing nils using filter was already the best way.  still nice to learn about the keep fn.  thx! I don't know if we can conclude that yet. It seems to be fastest on one system with one

Re: fastest way to remove nils

2010-11-17 Thread Steve Purcell
Miki miki.teb...@gmail.com writes: user= (time (remove nil? (repeat 100 nil))) Elapsed time: 0.079312 msecs () user= (time (filter identity (repeat 100 nil))) Elapsed time: 0.070249 msecs () Seems like filter is a bit faster, however YMMV You're not timing the execution, just the

Re: fastest way to remove nils

2010-11-17 Thread Robert McIntyre
So, just to be clear, user (def nil-seq (doall (interleave (repeat 1e5 nil) (repeat 1e5 whatever))) ) #'user/nil-seq user (time (doall (keep identity nil-seq))) Elapsed time: 122.485848 msecs user (time (doall (remove nil? nil-seq))) Elapsed time: 149.71484 msecs --Robert McIntyre On Wed,

Re: fastest way to remove nils

2010-11-17 Thread Ken Wesson
On Wed, Nov 17, 2010 at 7:55 PM, Robert McIntyre r...@mit.edu wrote: So, just to be clear, user (def nil-seq (doall (interleave (repeat 1e5 nil) (repeat 1e5 whatever))) ) #'user/nil-seq user (time (doall (keep identity nil-seq))) Elapsed time: 122.485848 msecs user (time (doall (remove

Re: fastest way to remove nils

2010-11-16 Thread lprefontaine
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 rubing...@gmail.com wrote .. What is the fastest way to remove nils from a

Re: fastest way to remove nils

2010-11-16 Thread Miki
user= (time (remove nil? (repeat 100 nil))) Elapsed time: 0.079312 msecs () user= (time (filter identity (repeat 100 nil))) Elapsed time: 0.070249 msecs () Seems like filter is a bit faster, however YMMV On Nov 16, 4:48 pm, Glen Rubin rubing...@gmail.com wrote: What is the fastest way

Re: fastest way to remove nils

2010-11-16 Thread Stuart Campbell
On 17 November 2010 12:37, lprefonta...@softaddicts.ca 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. Those aren't

Re: fastest way to remove nils

2010-11-16 Thread Mark Engelberg
(keep identity l) is preferable to (filter identity l) -- 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

Re: fastest way to remove nils

2010-11-16 Thread lprefontaine
Oups.. :) Stuart Campbell stu...@harto.org wrote .. On 17 November 2010 12:37, lprefonta...@softaddicts.ca 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)

Re: fastest way to remove nils

2010-11-16 Thread lprefontaine
Re-oups, Clojure 1.0 to 1.2 upgrade glitch :) Mark Engelberg mark.engelb...@gmail.com wrote .. (keep identity l) is preferable to (filter identity l) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to