我使用拥抱编译一个简单的Haskell函数来计算排列的数量。我希望它返回一个整型,但我需要在浮动上操作。 我试图计算答案作为一个浮动,然后截断它,但由于某种原因,它不工作。类型错误Haskell,有什么问题?
这是功能:
choose :: Float -> Float -> Integer
choose n r = truncate (chooseF (n r))
where
chooseF::Float->Float->Float
chooseF n r | n==r = 1
| otherwise = n/(n-r) * chooseF(n-1) r
这是错误(第35行是函数的第二行):
ERROR "/homes/mb4110/SimpleMath":35 - Type error in application
*** Expression : n r
*** Term : n
*** Type : Float
*** Does not match : a -> b
这可能是一些很明显我失踪,但我我们一直在这里待了很长时间,想不到解决方案。
由于我称之为“Caskell”造成的另一个缺陷。 Haskell不是C ...不要使用f(n),使用f n。另外,使用ghci。 – alternative