Module functions

Module functions 

Source
Expand description

Generic, helper free functions and re-exports of free versions of type class functions.

This module provides a collection of utility functions commonly found in functional programming, such as function composition, constant functions, and identity functions. It also re-exports free function versions of methods defined in various type classes (traits) for convenience.

§Examples

use fp_library::{brands::*, functions::*};

let f = |x: i32| x + 1;
let g = |x: i32| x * 2;
let h = compose::<i32, i32, _, _, _>(f, g);

assert_eq!(map::<OptionBrand, _, _, _>(h, Some(5)), Some(11));

Re-exports§

pub use crate::classes::apply_first::apply_first;
pub use crate::classes::apply_second::apply_second;
pub use crate::classes::category::identity as category_identity;
pub use crate::classes::clonable_fn::new as clonable_fn_new;
pub use crate::classes::compactable::compact;
pub use crate::classes::compactable::separate;
pub use crate::classes::defer::defer;
pub use crate::classes::filterable::filter;
pub use crate::classes::filterable::filter_map;
pub use crate::classes::filterable::partition;
pub use crate::classes::filterable::partition_map;
pub use crate::classes::foldable::fold_left;
pub use crate::classes::foldable::fold_map;
pub use crate::classes::foldable::fold_right;
pub use crate::classes::function::new as fn_new;
pub use crate::classes::functor::map;
pub use crate::classes::lift::lift2;
pub use crate::classes::monoid::empty;
pub use crate::classes::once::get as once_get;
pub use crate::classes::once::get_mut as once_get_mut;
pub use crate::classes::once::get_or_init as once_get_or_init;
pub use crate::classes::once::into_inner as once_into_inner;
pub use crate::classes::once::new as once_new;
pub use crate::classes::once::set as once_set;
pub use crate::classes::once::take as once_take;
pub use crate::classes::par_foldable::par_fold_map;
pub use crate::classes::par_foldable::par_fold_right;
pub use crate::classes::pointed::pure;
pub use crate::classes::semiapplicative::apply;
pub use crate::classes::semigroup::append;
pub use crate::classes::semigroupoid::compose as semigroupoid_compose;
pub use crate::classes::semimonad::bind;
pub use crate::classes::send_clonable_fn::new as send_clonable_fn_new;
pub use crate::classes::traversable::sequence;
pub use crate::classes::traversable::traverse;
pub use crate::classes::witherable::wilt;
pub use crate::classes::witherable::wither;

Functions§

compose
Composes two functions.
constant
Creates a constant function.
flip
Flips the arguments of a binary function.
identity
The identity function.