Function rust2fun::combinator::on
source · pub fn on<A, B, C, F, G>(f: F, g: G, x: A, y: A) -> Cwhere
F: FnOnce(B, B) -> C,
G: FnMut(A) -> B,
Expand description
This function, also called the Psi combinator, allows you to call a function on transformations of values. It can be considered the sister of converge. Where converge takes one argument and maps it through two unary functions, merging the resulting values with a binary function, psi takes two arguments and runs them each through the same unary function before merging them with the given binary function.
Example
use rust2fun::prelude::*;
let equals = |x, y| x == y;
let actual = on(equals, str::to_lowercase, "Str", "STR");
assert_eq!(true, actual);