scala
https://stackoverflow.com/questions/19617378/withfilter-instead-of-filter
Note: the difference between c filter p and c withFilter p is that the former creates a new collection, whereas the latter only restricts the domain of subsequent map, flatMap, foreach, and withFilter operations.