[back]

Filter All

Implement the function

val filter_all : ('a -> 'b -> bool) -> 'a list -> 'b list -> 'b list

so that filter_all f l r is the members x of r — in order — for which f a x is true for every member a of l.

Examples

let l = [1;2;3;4;5;6;7]
let _ = assert (filter_all (>) [4;2] l = [1])
let _ = assert (filter_all (<) [4;2] l = [5;6;7])