Je suis en train d'écrire la série de puissance dans Haskell,Power Series en Haskell
e^x = 1 + x + x^2/2! + x^3/3! + ...
telle qu'elle à mettre
[1,1,1/2,1/6,...]
jusqu'à présent je me suis:
factorial 0 = 1
factorial n = n * factorial (n - 1)
powerSrs x = 1 : powerSrsFunc[1..] where
powerSrsFunc (p: xs) =
p : powerSrsFunc[y | y <-xs, ((x^y)/(factorial y))]
Cependant, je comprends que ma frappe ici est erronée. Je reçois cette erreur:
tut08.hs:8:58:
No instance for (Integral Bool)
arising from a use of `^'
Possible fix: add an instance declaration for (Integral Bool)
In the first argument of `(/)', namely `(x^y)'
In the expression: ((x^y)/(factorial y))
In a stmt of a list comprehension: ((x^y)/(factorial y))
tut08.hs:8:62:
No instance for (Fractional Bool)
arising from a use of `/'
Possible fix: add an instance declaration for (Fractional Bool)
In the expression: ((x^y)/(factorial y))
In a stmt of a list comprehension: ((x^y)/(factorial y))
In the first argument of `powerSrsFunc', namely
`[y | y <- xs, ((x^y)/(factorial y))]'
1) Comment écrire des fractions dans Haskell vous de telle sorte qu'il est sortie comme « 1/2 »?
2) Qu'est-ce que cela signifie quand ils disent Aucun cas pour (Bool intégrale) et (Fractional Bool)?
Est-il référence à deux arguments qui sont de type intégral et Bool?
-t-il pas intégré et intégrée?
je ne peux pas sembler obtenir les fractions bit de droite en cours d'exécution. Il semble qu'il y ait seulement l'opérateur% dans le paquet Data.Ratio, et il affichera les ratios comme 2% 3 et non 2/3. – ali
Ah, je suppose que vous pourriez le transformer en une chaîne et remplacer le% avec /. Je suppose qu'il utilise% pour qu'il puisse être correctement lu à nouveau. Utiliser/serait en conflit avec l'utilisation standard de /. –
oh boy, maintenant que vous allez ouvrir une toute nouvelle série de questions en ce qui concerne les conversations Int -> String. haha. – ali