0
저는 haskell에서 합계 함수를 만들려고합니다. 언어에 익숙해지기 위해이 작업을하고 있습니다. 나는 그것을 다음과 같이 정의했다 :하스켈 - 어디에서 패턴 매칭을 이해 하시겠습니까?
mysum :: [Integer] -> Integer
mysum lst = sm lst
where
sm :: [Integer] -> Integer
sm lst [] = 0
sm lst [x:xs]=
x + sm xs
아이디어는 목록의 머리 부분의 값을 반환하고 꼬리를 함수에 다시 입력하는 것이었다. 나는 F #에서 비슷한 일을 회상하지만, 단순히 haskell에서 일하도록하지는 않습니다.
The error im getting is:
sum.hs:5:5: error:
• Couldn't match expected type ‘Integer’
with actual type ‘[[Integer]] -> Integer’
• The equation(s) for ‘sm’ have two arguments,
but its type ‘[Integer] -> Integer’ has only one
In an equation for ‘mysum’:
mysum lst
= sm lst
where
sm :: [Integer] -> Integer
sm lst [] = 0
sm lst [x : xs] = x + sm xs
|
5 | sm lst [] = 0
| ^^^^^^^^^^^^^...