Yes I do!
(defn filter-collecting [p c & l]
(remove nil? (apply map #(when % (apply c %&)) (apply map p l) l)))
But that gives incorrect results if c ever returns nil, so
I guess it should be:
(defn filter-collecting [p c & l]
(let [x `x#]
(remove #(= % x)
(apply map #(if % (apply c %&) x)
(apply map p l)
l))))
But that's getting pretty ugly, so maybe this is better:
(defn filter-collecting [p c & l]
(map #(apply c %)
(filter #(apply p %)
(apply map vector l))))
Nothing terribly inventive there. I'll have to get my
satisfaction from being first. I'm sure the best are yet to
come...
--Chouser