Dar*_*rio 4 haskell functional-programming
在Haskell中使用monadic表达式时,使用liftM's(甚至在中缀位置)对我来说通常看起来非常不美观和冗长.
大多数其他monadic原语(>>=,>>)甚至liftM是纯粹的链接 $都是中缀运算符.这让我想到为什么monadic提升没有操作符号.
对于操作符号(或者为什么不应该有符号),您是否有合理,一致的建议?(我想的>-和-<(通过函数移位单子),但它们似乎在箭头的上下文不同的含义.)
您可以使用<$>Control.Applicative中的运算符.
编辑:不幸的是<$>只适用于一些作为Applicative实例的Monads.定义一些instance Monad m => Applicative m是不可能的,因为这将与现有的Applicative实例IO,Maybe和[]重叠.