Support for compress function

Uses a for loop in favour of reusing filter in order to
facilitate not iterating the iterable when there are no selectors
remaining