(let [mylist ["" "1234" "blue" :key 5 nil]
filterfn (constantly "How to do this idiomatically, keeping all but the two empty elements?")]
(filter filterfn mylist))
using empty? fails because of the non-seq list elements. It can easily be done with an anonymous function, but is there really no other idiomatic way?
filterfn can be (some-fn (complement seqable?) seq) since you want to keep everything that is not seqable or is not empty – but I would probably turn it around like this: