我是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] - &gt; a - &gt;(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)
答案 0 :(得分:8)
你的新右括号来得太晚了。它应该是
... reduceBy (floor(fromIntegral a / fromIntegral n)) ...
$
相当弱,但是括号胜过一切。