Function compose

Source
pub fn compose<'a, A: 'a, B: 'a, C: 'a>(
    f: ClonableFn<'a, B, C>,
) -> ClonableFn<'a, ClonableFn<'a, A, B>, ClonableFn<'a, A, C>>
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;
use std::sync::Arc;

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

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