1
下面的代碼編譯就好了,但我不能用我的功能:如何解決這個不明確的類型變量錯誤?
CODE:
g :: (Fractional b, Integral b) => Int -> b -> b
g 1 x = x/(g 2 x + 1)
g 100 x = 2401*x/100
g n x = ((map (\z -> (ceiling z)^2) (1:[0.5,1..]))!!(n-1))*x/((g (n+1) x) + fromIntegral n)
錯誤:
Ambiguous type variable `t' in the constraints:
`Integral t' arising from a use of `g' at <interactive>:1:0-6
`Fractional t' arising from a use of `g' at <interactive>:1:0-6
Probable fix: add a type signature that fixes these type variable(s)
爲什麼會出現這種情況,如何能我解決這個問題?我在Windows下運行GHC 6.10.4,如果這是相關的。
我已經採取了看看這個相關question,但不認爲這解決了我的需要。
@Tirpen:你一針見血的頭部。我認爲'天花板'也是問題。謝天謝地,'fromIntegral'的存在是爲了解決這種情況。 – Zaid 2009-10-15 16:20:30