我试图理解Monad ,但我 看到的大多数示例都使用了一些特定于语言的功能。为了确保我在概念上理解它是正确的,我想编写一个通用实现。下面是我想出的。
有人可以告诉我在概念上是否正确吗?有没有更好的方法来概括它?
def f():
return 2
def g():
return 4
def h():
return 7
def i():
return None
def bind(val, func):
if val is None:
return None
else:
return(func())
unit = 0
>>> bind(bind(bind(unit,f),i),h) #Returns nothing
>>> bind(bind(bind(unit,f),g),h) #Returns a value
>>>7
如果我想从这些函数中添加值并在其中任何一个为 NULL 时中止怎么办?有什么建议吗?