Le code suivant compile très bien, mais je ne peux pas utiliser ma fonction:Comment puis-je résoudre cette erreur de variable de type ambigu?
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)
ERREUR:
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)
Pourquoi est-ce qui se passe, et comment peut- Je travaille autour de ça? Je cours GHC 6.10.4 sous Windows, si cela est tout à fait pertinent.
J'ai déjà jeté un oeil à ce question, mais je ne pense pas que cela répond à mes besoins.
@Tirpen: Vous mettre le doigt dessus. Je pensais que le «plafond» était aussi le problème. Heureusement, 'fromIntegral' existe pour contourner de tels scénarios. – Zaid