주어진 마크 목록에서 평균 마크를 계산하는 함수를 원합니다. 내가 뭘하려고 오전하스켈 Int Int 나누기
getAverageRate :: [Int]->Int
getAverageRate marks = (fromIntegral (foldr (+) 0 marks))/(fromIntegral (length marks))
다음 '길이 표시'에 의해 분할 'foldr'를 사용하여 목록에있는 모든 마크의 합계를 얻을 것입니다 : 이것은 내가 지금까지 만든 것입니다. 이미 'fromIntegral'을 사용하고 있지만이 오류가 계속 나타나고 문제를 찾을 수 없습니다.
No instance for (Fractional Int) arising from a use of `/'
Possible fix: add an instance declaration for (Fractional Int)
In the expression:
(fromIntegral (foldr (+) 0 marks))/(fromIntegral (length marks))
In an equation for `getAverageRate':
getAverageRate marks
= (fromIntegral (foldr (+) 0 marks))
/(fromIntegral (length marks))
'fromIntegral'을 호출하면'Int '에서 다른 유형으로의 변환을 요청할 것입니다. 그러나 함수의 리턴 타입을'Int'로 제한함으로써, 당신은 근본적으로 그 Int's를'Int'! –