compose 0.1.0

compose function
Documentation
use compose::{compose_2, compose_n};

#[test]
fn smoke_compose_2() {
    let add = |x| x + 1;
    let mul = |x| x * 2;

    let f1 = compose_2(add, mul);
    assert_eq!(5, f1(2));

    let f2 = compose_2(mul, add);
    assert_eq!(6, f2(2));
}

#[test]
fn smoke_compose_n() {
    let add = |x| x + 1;
    let sub = |x| x - 1;
    let mul = |x| x * 2;

    let f1 = compose_n!(sub, add, mul);
    assert_eq!(4, f1(2));

    let f2 = compose_n!(sub, mul, add);
    assert_eq!(5, f2(2));
}