Function flip

Source
pub fn flip<'a, A: 'a, B: 'a + Clone, C: 'a>(
    f: ClonableFn<'a, A, ClonableFn<'a, B, C>>,
) -> ClonableFn<'a, B, ClonableFn<'a, A, C>>
Expand description

Returns a version of the input curried binary function with its arguments flipped.

§Type Signature

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

§Parameters

  • f: A curried binary function.

§Returns

A version of f that takes its arguments in reverse.

§Examples

use fp_library::{aliases::ClonableFn, functions::flip};
use std::sync::Arc;

let subtract: ClonableFn<_, ClonableFn<_, _>> = Arc::new(|a| Arc::new(move |b| a - b));

assert_eq!(flip(subtract)(1)(0), -1); // 0 - 1 = -1