I'm following this example: http://groups.google.com/group/clojure/browse_thread/thread/99b3d792b1d34b56
(see the last reply)
And this is the cryptic error that I get:
Clojure 1.2.1
user=> (def m {:a "x" :b "y" :c "z" :d "w"})
#'user/m
user=> (filter #(some % [:a :b]) m)
java.lang.IllegalArgumentException: Key must be integer
(user=>
Also I don't understand why this would even work. Isn't (some ...) going to return the first matching value, "x", every time? I'm a total noob at clojure and just trying to learn.
Please enlighten me.
filteris meant to operate on a collection of maps, not a single map; and this particular#(...)block involvingsomeis only appropriate if the given maps do not containnilorfalsevalues (as mentioned in the thread), but in any case, the function it returns will be applied (lazily) to each of the given maps in turn. - MichaĆ Marczyk