두 인수의 하스켈 함수를 다시 작성해야합니까이 하스켈에 다음 함수은 어떻게 포인트 - 무료로 스타일을
나는 것 '관용적'하스켈을 작성하는 방법을 배우려고 노력하고있어agreeLen :: (Eq a) => [a] -> [a] -> Int
agreeLen x y = length $ takeWhile (\(a,b) -> a == b) (zip x y)
괄호 대신 .
및 $
을 사용하는 것이 더 좋으며, 가능한 경우 무한 코드를 선호하는 것이 좋습니다. 나는 단지 x
과 y
을 명시 적으로 언급하는 것을 제거 할 수 없다. 어떤 아이디어?
두 인수의 함수를 pointfreeing하는 것과 동일한 문제가 있다고 생각합니다.
지금까지 좋은 코드를 작성하는 중입니다. 일부는 "숙제를하지 않고 점심을 버는 데 필요한 것을 사용하십시오."
감사합니다.
(추가 코멘트) 답변에 대한 감사합니다. 이 함수가 pointfree로부터 이익을 얻지 못한다고 당신은 확신했습니다. 그리고 여러분은 또한 변형 표현을 연습하기위한 훌륭한 예를 나에게 주셨습니다. 그것은 여전히 나를 위해 어려운, 그리고 포인터 C.
hlint (http://community.haskell.org/~ndm/darcs/hlint/hlint.htm)는 사용법을 비롯하여 표현을 작성하는 다른 방법을 배우는 데 매우 유용합니다. 및 $. – mhwombat