contramap<B, A> function

Predicate<B> Function(Predicate<A> ) contramap<B, A>(
  1. A f(
    1. B
    )
)

Transforms a predicate using a function.

Example usage:

```dart
Predicate<String> isStringLengthGreaterThan5 = (String s) => s.length > 5;
Predicate<List<String>> isAnyStringInListLengthGreaterThan5 = contramap((List<String> list) => list.firstWhere((s) => s.length > 5, orElse: () => ''))(isStringLengthGreaterThan5);

print(isAnyStringInListLengthGreaterThan5(['abc', 'abcdefg']));  // Prints: true
print(isAnyStringInListLengthGreaterThan5(['abc', 'def']));  // Prints: false

Implementation

Predicate<B> Function(Predicate<A>) contramap<B, A>(A Function(B) f) {
  return (Predicate<A> p) {
    return (B value) => p(f(value));
  };
}