public static <A, B> Predicate<A> compose(Predicate<B> predicate, Function<A, ? extends B> function) {
		return t -> predicate.test(function.apply(t));
	}
public static < A , B > Predicate < A > compose ( Predicate < B > predicate , Function < A , ? extends B > function ) { return t -> predicate . test ( function . apply ( t ) ) ; }
Returns the composition of a function and a predicate. For every {@code x},
the generated predicate returns {@code predicate(function(x))}.

@return the composition of the provided function and predicate