我在一个小项目上运行了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)的操作,但我甚至不知道如何评估它?发布于 2014-03-25 09:33:31
箭头是一个类型类,其中(->)是一个实例(参见here中的“实例”,here为实现)。这意味着您可以在函数中直接使用箭头运算符(如(&&&) )。
https://stackoverflow.com/questions/22630217
复制相似问题