有人可以解释这个错误吗?

Pet*_*all 0 syntax haskell

我是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)
Run Code Online (Sandbox Code Playgroud)

虽然这有错误:(无法匹配预期类型`(a,[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)
Run Code Online (Sandbox Code Playgroud)

Hen*_*olm 8

你的新右括号来得太晚了.它应该是

... reduceBy (floor(fromIntegral a / fromIntegral n)) ...
Run Code Online (Sandbox Code Playgroud)

$结合相当弱,但括号王牌一切.