Example #1
0
def monadize(monad):
    "Decorator for creating a monad."
    monad.then = lambda s, se: s >= (lambda a: se)
    monad.__ge__ = monad.bind  # >= is Haskell's >>=
    monad.__lshift__ = func.flip(monad.bind)  # << is Haskell's =<<
    monad.__rshift__ = monad.then  # >> is Haskell's >>
    return monad
Example #2
0
def monadize(monad):
    "Decorator for creating a monad."
    monad.then = lambda s, se: s >= (lambda a: se)
    monad.__ge__ = monad.bind  # >= is Haskell's >>=
    monad.__lshift__ = func.flip(monad.bind)  # << is Haskell's =<<
    monad.__rshift__ = monad.then  # >> is Haskell's >>
    return monad
Example #3
0
    "Flipped map_m"
    return map_m(monad_t, transform, from_list)


def for_m_(monad_t, from_list, transform):
    "Flipped map_m_"
    return map_m_(monad_t, transform, from_list)


@infix.Infix
def mcompl(a_to_monad_b, b_to_monad_c):
    """Left-to-right Kleisli composition."""
    return lambda a: (a_to_monad_b(a) >= b_to_monad_c)


mcompr = infix.Infix(func.flip(mcompl))
mcompr.__doc__ = "Flipped Kleisli composition."


def forever(monad_action):
    "Repeats a monad action infinitely."
    return monad_action >> forever(monad_action)


def join(monad_of_monads):
    "Removes a level of monadic structure."
    return monad_of_monads >= (lambda x: x)


def map_and_unzip_m(monad_t, map_function, from_list):
    """
Example #4
0
    "Flipped map_m"
    return map_m(monad_t, transform, from_list)


def for_m_(monad_t, from_list, transform):
    "Flipped map_m_"
    return map_m_(monad_t, transform, from_list)


@infix.Infix
def mcompl(a_to_monad_b, b_to_monad_c):
    """Left-to-right Kleisli composition."""
    return lambda a: (a_to_monad_b(a) >= b_to_monad_c)


mcompr = infix.Infix(func.flip(mcompl))
mcompr.__doc__ = "Flipped Kleisli composition."


def forever(monad_action):
    "Repeats a monad action infinitely."
    return monad_action >> forever(monad_action)


def join(monad_of_monads):
    "Removes a level of monadic structure."
    return monad_of_monads >= (lambda x: x)


def map_and_unzip_m(monad_t, map_function, from_list):
    """