coffeescript的`?.`运算符是monad吗?

Jes*_*ieh 5 monads haskell coffeescript

我刚刚读到了Haskell中的Maybe Monad,它似乎在Coffeescript的?.运算符中扮演了类似的角色.?.操作员是否被认为是monad,还是两种不同的方式做同样的事情?

在Haskell中,你写

a >>= b >>= c
Run Code Online (Sandbox Code Playgroud)

在coffeescript中,你写

a?.b?.c
Run Code Online (Sandbox Code Playgroud)

J. *_*son 9

单个操作员不能以发动机不能作为机动车的方式成为单子.短路行为是Maybe的一个属性,(Maybe, return, (>>=))恰好是monad.

可能存在一些你可以在CoffeeScript中定义的东西,这样它们一起恰好是monad,并且?.填充了"bind"角色.与Haskell不同,这些东西不太可能都是一流的,甚至不能代表语言.

  • @JesseShieh Monads由于monad的一个例子而没用,它们很有用,因为它们广泛适用.您可以使用monads来执行`?.`,就像您可以使用电子表格添加两个数字一样. (3认同)