我刚刚阅读了 Haskell 中的 Maybe Monad,它似乎扮演了与 Coffeescript 的 ?.
相似的角色。运算符(operator)。是?.
运算符被认为是一个单子(monad),还是只是做同一件事的两种不同方式?
在 Haskell 中,你写
a >>= b >>= c
在 CoffeeScript 中,你写
a?.b?.c
最佳答案
单个运算符(operator)不能是单子(monad),就像发动机不能是机动车辆一样。短路行为是 Maybe 和 (Maybe, return, (>>=))
的属性。恰好是一个单子(monad)。
可能存在一些你可以在 CoffeeScript 中定义的东西,这样它们一起恰好是一个 monad 以及 ?.
填补“绑定(bind)”的作用。与 Haskell 不同,这些东西不可能都是一流的,甚至不可能在语言中表示。
关于haskell - coffeescript 的 `?.` 运算符是单子(monad)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23878444/