[][src]Macro monadic::monadic

macro_rules! monadic {
    (let $v:ident = $e:expr ; $($rest:tt)*) => { ... };
    (guard $pred:expr ; $($rest:tt)*) => { ... };
    (_ <- $monad:expr ; $($rest:tt)* ) => { ... };
    ($v:ident <- $monad:expr ; $($rest:tt)* ) => { ... };
    ($monad:expr                            ) => { ... };
}

converting monadic blocs of IntoIterator's as monads à la Haskell

You can use:

  • Option::pure( return_expresion) to return an expression value
  • v <- monadic_expression to use the monad result
  • _ <- monadic_expression to ignore the monad result
  • let z = expression to combine monad results
  • guard boolean_expression to filter results