func.py/func_py/monad.py
2025-06-15 22:39:15 +02:00

29 lines
503 B
Python

class Monad:
def __init__(self, bind, value):
self.__bind = bind
self.__m = unit(value)
def bind(self, f):
self.__m = self.__bind(self.__m, f)
return self
def __lshift__(self, f):
self.__m = self.__bind(self.__m, f)
return self
"""
if __name__ == "__main__":
Monad(bind, 1) << (lambda x: x+10) << (lambda x: 2*x)
add = lambda a, b: a+b
print(list(zip([1,2,3],[4,5,6])))
print(list(zipWith(add,[1,2,3],[4,5,6])))
"""