Voglio fare una lista di numeri ogni 0.1
da -150
a 150
.Perché non è possibile mappare una funzione che si moltiplica per Fractional in una lista di Nums?
Per fare questo, ho creato una lista, e poi ha cercato di mappare una lambda moltiplicazione frazionale su di esso, in questo modo:
let indices = [-1500,-1499..1500]
let grid = map (\x -> 0.1 *x) indices
Questo rende ghci sputare fuori un errore.
D'altra parte, entrambi questi funzionano bene:
let a = 0.1*2
e
let grid = map (\x -> 2 *x) indices
cosa sta succedendo qui? Perché la moltiplicazione di un numero di un frazionale fallisce solo se applicata a un elenco con mappa?
EDIT: L'errore che ottengo è:
No instance for (Fractional Integer)
arising from the literal `0.1'
Possible fix: add an instance declaration for (Fractional Integer)
In the first argument of `(*)', namely `0.1'
In the expression: 0.1 * x
In the first argument of `map', namely `(\ x -> 0.1 * x)'
Qual è l'errore che stai ottenendo? –
Ah, la restrizione del monomorfismo, colpisce di nuovo. – Carl
@SamiN: ho aggiunto l'errore alla domanda. – Dan