我使用擁抱編譯一個簡單的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