match<A, B> function

B Function(A) Function(Predicate<A> ) match<A, B>(
  1. B onFalse(
    1. A value
    ),
  2. B onTrue(
    1. A value
    )
)

Matches a value against a predicate and returns a function.

Example usage:

```dart
Predicate<int> isEven = (int n) => n % 2 == 0;
String Function(int) evenOrOdd = match(() => 'Even', () => 'Odd')(isEven);

print(evenOrOdd(2));  // Prints: 'Even'
print(evenOrOdd(1));  // Prints: 'Odd'

Implementation

B Function(A) Function(Predicate<A>) match<A, B>(
  B Function(A value) onFalse,
  B Function(A value) onTrue,
) {
  return (Predicate<A> predicate) {
    return (A value) {
      return predicate(value) ? onTrue(value) : onFalse(value);
    };
  };
}