我在一个小项目上运行 HLint,它建议我使用 &&&。
例子 :
>>> cat st.hs
f = (+) 10
g = (+) 1
main = print $ (\x -> (f x, g x)) 5
>>> hlint st.hs
st.hs:4:17: Warning: Use &&&
Found:
\ x -> (f x, g x)
Why not:
f Control.Arrow.&&& g
1 suggestion
我了解
\x -> (f x, g x)
是一种模式,并感谢您的建议。但是 Control.Arrow.&&&
不采用普通函数,而是采用箭头,所以我不能只按照建议使用 &&&
。那么在这种情况下推荐的方法是什么?
&&&
运算符? (arr f) &&& (arr g)
的操作,但我什至不知道如何评估它? 最佳答案
Arrow是类型类,其中(->)
是一个实例(请参见“实例”下的here,有关实现请参见here)。这意味着您可以直接将 (&&&)
等箭头运算符与函数一起使用。
关于haskell - HLint : use &&& suggestion advice,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22630217/