sto cercando di scrivere la serie di potenze in Haskell,potenza Serie in Haskell
e^x = 1 + x + x^2/2! + x^3/3! + ...
tale che sarà fuori messo
[1,1,1/2,1/6,...]
finora ho ottenuto:
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))]
Tuttavia, capisco che la mia digitazione qui sia sbagliata. Sto ottenendo questo errore:
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) Come si scrive frazioni in Haskell tale che è uscita come '1/2'?
2) Che cosa significa quando si dice Nessuna istanza per (Bool intero) e (Bool frazionale)?
Si riferisce a due argomenti di tipo Integral e Bool?
Non sono necessari Integrali e Integrali?
non riesco a far funzionare bene le frazioni. Sembra che ci sia solo l'operatore% nel pacchetto Data.Ratio, e mostrerà i rapporti come 2% 3 e non 2/3. – ali
Ah, credo che potresti trasformarlo in una stringa e sostituire% con /. La mia ipotesi è che usi% in modo che possa essere letto di nuovo correttamente. Usare/sarebbe in conflitto con l'uso standard di /. –
oh ragazzo, ora aprirai un'intera nuova serie di domande per quanto riguarda le conversazioni Int -> String. haha. – ali