[][src]Trait funlib::Monoid

pub trait Monoid: Semigroup {
    fn mempty() -> Self;
}

Monoid type class extends the Semigroup and adds an empty function for the type

Required methods

fn mempty() -> Self

empty function same as Default

Examples

use funlib::{Monoid, Semigroup, Foldable::*};
let sum = vec![1i32,2i32,3i32,4i32].fold(i32::mempty(), |b,a| i32::mappend(&b, a));
assert_eq!(10i32, sum);
assert_eq!(None::<i32>, Option::<i32>::mempty());
Loading content...

Implementations on Foreign Types

impl Monoid for i8[src]

impl Monoid for i16[src]

impl Monoid for i32[src]

impl Monoid for i64[src]

impl Monoid for u8[src]

impl Monoid for u16[src]

impl Monoid for u32[src]

impl Monoid for u64[src]

impl Monoid for f32[src]

impl Monoid for f64[src]

impl<A: Monoid> Monoid for Option<A>[src]

impl<A: Monoid> Monoid for Box<A>[src]

impl<'a> Monoid for &'a str[src]

Loading content...

Implementors

Loading content...