Haskell: 去除 liftM2 中的括号
Haskell: get rid of parentheses in liftM2
如何在不引入新名称的情况下去掉标有^
的括号? (如果能分成多行就更好了)
liftM2 (+) (somefunc arg1 (get arg2)) (somefunc arg3 (get arg3))
^ ^ ^ ^
-
您可以使用 $
删除最后一个,但如果不引入新名称,显然不能删除另一个。更好的解决方案可能是使用这样一个事实,即任何 Monad m
也应该是 Applicative
和 Functor
(并且 将 成为 GHC 7.10)
你的例子就变成了
import Control.Applicative ((<$>), (<*>))
(+) <$> somefunc arg1 (get arg2) <*> somefunc arg3 (get arg3)
如何在不引入新名称的情况下去掉标有^
的括号? (如果能分成多行就更好了)
liftM2 (+) (somefunc arg1 (get arg2)) (somefunc arg3 (get arg3))
^ ^ ^ ^
-
您可以使用 $
删除最后一个,但如果不引入新名称,显然不能删除另一个。更好的解决方案可能是使用这样一个事实,即任何 Monad m
也应该是 Applicative
和 Functor
(并且 将 成为 GHC 7.10)
你的例子就变成了
import Control.Applicative ((<$>), (<*>))
(+) <$> somefunc arg1 (get arg2) <*> somefunc arg3 (get arg3)