我在Haskell中有以下功能
agreeLen :: (Eq a) => [a] -> [a] -> Int
agreeLen x y = length $ takeWhile (\(a,b) -> a == b) (zip x y)
Run Code Online (Sandbox Code Playgroud)
我正在努力学习如何编写'惯用'Haskell,它似乎更喜欢使用.而$不是括号,并且在可能的情况下更喜欢无点代码.我似乎无法摆脱提及x和y明确.有任何想法吗?
我认为我对点两个参数的任何函数都有同样的问题.
顺便说一下,这只是为了编写好的代码; 不是一些"使用任何必要的东西来使其无意义"的家庭作业.
谢谢.
(添加评论)感谢您的回答.你已经说服我这个功能不会从pointfree中受益.而且你也给了我一些很好的例子来练习转换表达式.这对我来说仍然很困难,而且它们似乎与Haskell一样重要,因为它指向C.