Может кто-нибудь объяснить эту ошибку? - PullRequest
0 голосов
/ 30 августа 2011

Я новичок в Haskell и борюсь с некоторыми тонкостями синтаксиса.Почему это хорошо:

reduceBy a f n
    | n < 2 = (a,f)
    | (a `mod` n) == 0 = 
        reduceBy( floor $ fromIntegral a / fromIntegral n) (f++[n]) n
    | otherwise = (a, f)

Хотя в этом есть ошибки: (Не удалось сопоставить ожидаемый тип `(a, [a]) 'с предполагаемым типом` [a] -> a -> (a,[а]) ')

reduceBy a f n
    | n < 2 = (a,f)    
    | (a `mod` n) == 0 = 
        reduceBy( floor(fromIntegral a / fromIntegral n) (f++[n]) n )    
    | otherwise = (a, f)

?

1 Ответ

8 голосов
/ 30 августа 2011

Ваша новая закрывающая скобка приходит слишком поздно. Должно быть

... reduceBy (floor(fromIntegral a / fromIntegral n)) ...

$ связывается довольно слабо, но скобки бьют все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...