我在Haskell中有以下函数
agreeLen :: (Eq a) => [a] -> [a] -> Int
agreeLen x y = length $ takeWhile (\(a,b) -> a == b) (zip x y)
我正在努力学习如何编写“惯用的”Haskell,它似乎更喜欢使用.
和$
,而不是括号,并且在可能的情况下更喜欢无指针的代码。我似乎不能摆脱明确提到x
和y
。有什么想法吗?
我想我也会遇到同样的问题,去指向包含两个参数的任何函数。
顺便说一句,这只是为了写出好的代码;而不是一些“不惜一切代价让它变得无关紧要”的作业练习。
谢谢。
(添加评论)感谢您的回答。你让我相信这个函数不会从无指针中受益。你还给了我一些很好的例子来练习转换表达式。这对我来说仍然很困难,它们对Haskell来说似乎就像对C语言的指针一样重要。
https://stackoverflow.com/questions/13426417
复制相似问题