我在Haskell下面的代碼:哈斯克爾不負任何實例(分數A0)
powmod base 1 m = mod base m
powmod base exp m | even exp = mod (pow2 * pow2) m
| otherwise = mod (base * powmod base (exp - 1) m) m
where
pow2 = powmod base (div exp 2) m
part1 j n 0 = 0
part1 j n k = (part1 j n (k-1)) + (powmod 16 (n-k) r)/r
where
r = 8*k+j
的代碼加載不上ghci的任何問題。問題是當我嘗試調用該函數第一部分爲:
part1 4 10 4
我得到:
沒有實例從使用
it' The type variable
A0' 而產生的(分數A0)是不明確的說明:有幾個潛在的 實例:實例積分a =>分數(GHC.Real.Ratio a) - 定義於GHC.Real' instance Fractional Double -- Defined in
GHC.Float實例分數浮點數 - 定義於GHC.Float' In the first argument of
print',即`it'在 互動GHCi指令:打印
我不明白這個問題。任何幫助都會很棒。由於
嗨,感謝您的回答,但是如果我真的希望part1的返回類型是分數?我試過用「part1 :: Integer - > Integer - > Integer - > Float」但沒有工作 – Kabal