Я получаю эту ошибку:Использование скобок в Haskell
<interactive>:145:29:
Could not deduce (Integral ([a0] -> Int))
arising from a use of ‘fromIntegral’
from the context (Num ([a] -> a), Fractional a)
bound by the inferred type of
meanList :: (Num ([a] -> a), Fractional a) => [a] -> a
at <interactive>:145:5-50
The type variable ‘a0’ is ambiguous
In the second argument of ‘(/)’, namely ‘(fromIntegral length x)’
In the expression: (sum x)/(fromIntegral length x)
In an equation for ‘meanList’:
meanList x = (sum x)/(fromIntegral length x)
Выше ошибка генерируется:
Однако при обновлении это:
let meanList x = sum x/fromIntegral (length x)
Тогда все хорошо.
Как скобки работают в Haskell?
Это не проблема с круглыми скобками, а с функциональным приложением. – AJFarmar
Если вы сомневаетесь, добавьте '$': 'fromIntegral $ length x' - это то же самое, что' fromIntegral (length x) ', но вам не нужно отслеживать, где должна быть закрывающая скобка. – 9000