lazily filters a sequence
(filter func seq)
Creates a lazy sequence whose content is the result of applying the provided function to the elements of the provided sequence. If the result of the application is truthy (not #f (false) or the empty list) then the value will be included in the resulting sequence.
(filter (lambda (x) (< x 3)) [1 2 3 4])
This will return the lazy sequence (1 2)