中缀运营商的应用方式?

时间:2012-10-02 02:35:23

标签: haskell applicative infix-operator

在处理中缀运算符时,有没有办法让<$><*>的应用程序看起来很好用?我想那个

((++) <$> a <*> ((++) <$> b <*> c ))

看起来更混乱

a ++ b ++ c

所以我想知道是否有更好的方法。

3 个答案:

答案 0 :(得分:11)

(<++>) = liftA2 (++)
a <++> b <++> c

liftA2 (++) a $ liftA2 (++) b c

答案 1 :(得分:6)

参见Thomas Davie的InfixApplicative包,它提供了一般语法技巧,而不必为每次提升定义一个新的运算符。

答案 2 :(得分:3)

SHE让你写

(|a ++ (|b ++ c|)|)

如果有用的话。当然,引入预处理层会有一些开销。