Discards items from another iterator which fail to match a predicate.
Each time this iterator is advanced, it repeatedly calls
(iter-next! it) until
returns a value other than
#n. That item is then produced by the iterator.
(prn ..(filter even? '(1 2 3 4))) ; prints 2 4