compose

Function compose 

Source
pub fn compose<A, B, C, F, G>(f: F, g: G) -> impl Fn(A) -> C
where F: Fn(B) -> C, G: Fn(A) -> B,
Expand description

Takes functions f and g and returns the function f . g (f composed with g).

§Type Signature

forall a b c. (b -> c) -> (a -> b) -> a -> c

§Parameters

  • f: A function from values of type B to values of type C.
  • g: A function from values of type A to values of type B.

§Returns

A function from values of type A to values of type C.

§Examples

use fp_library::functions::compose;

let add_one = |x: i32| x + 1;
let times_two = |x: i32| x * 2;
let times_two_add_one = compose(add_one, times_two);

// 3 * 2 + 1 = 7
assert_eq!(
    times_two_add_one(3),
    7
);