On Oct 16, 4:57 pm, "Paul Stadig" <[EMAIL PROTECTED]> wrote: > More options: I was browsing through the docs and I couldn't find a function > that is the "opposite" of filter, which would allow something like: > > (remove nil? coll) > > Or alternatively if we had not-nil? > > (filter not-nil? coll) > > Are either of those more palatable? > > In regards to compact removing false, I would be against that, since Clojure > makes a distinction between false and nil. You could, for example, want to > have a collection of boolean values, but want to remove the nils (perhaps > they're a sentinel for some other meaning). > > user> (compact [true false nil true true]) > (true false true true) > > I think it makes sense to have the number functions like max and min throw a > NPE, and since false and nil are distinct, I think it makes sense to have a > compact that removes nil, but leaves false. > > Paul > > On Thu, Oct 16, 2008 at 4:45 PM, Stuart Halloway > <[EMAIL PROTECTED]>wrote: > > > > > Just to add to the confusion: I want compact to remove nil and > > false. :-) > > > > Perhaps another nudge for compact is that it's not as simple as > > > (filter identity coll), to wit: > > > > user> (filter identity [1 2 nil false 4]) > > > (1 2 4) > > > > user> (filter #(not (nil? %)) [1 2 nil false 4]) > > > (1 2 false 4) > > > > So unless you want to catch false in your net you really need to be > > > doing the latter, which again is not unreasonable, but just a little > > > messy to be using frequently. > I've been meaning to add remove for a while. It's certainly more general than compact, and (filter (complement ...)) gets cumbersome and more difficult to understand. Done: (remove nil? [1 2 nil 3 false 4 5]) -> (1 2 3 false 4 5) Everyone should be aware of the set trick for both filter and remove with specific values: (remove #{2 4} [1 2 nil 3 false 4 5]) -> (1 nil 3 false 5) Rich --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---