我是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)
?
你的新右括号来得太晚了.它应该是
... reduceBy (floor(fromIntegral a / fromIntegral n)) ...
Run Code Online (Sandbox Code Playgroud)
该$结合相当弱,但括号王牌一切.