Sono abbastanza nuovo per la programmazione Haskell e ho difficoltà a capire perché sto ricevendo questo errore nel mio codice.Haskell: errore lessicale in stringa/carattere letterale al carattere 'i'
Il mio problema è il seguente: Qualsiasi intero positivo i può essere espresso come i = 2^n * k, dove k è dispari, cioè come potenza di 2 volte un numero dispari. Chiamiamo n l'esponente di 2 in i. Ad esempio, l'esponente di 2 in 40 è 3 (perché 40 = 2^3 * 5) mentre l'esponente di 2 in 42 è 1. Se io stesso è dispari, allora n è zero. Se, d'altra parte, io sono pari, ciò significa che può essere diviso per 2. Scrivi una funzione exponentOfTwo per trovare l'esponente di 2 nel suo argomento.
Capisco il psuedocodarlo e sembra abbastanza semplice: ricorsivamente i dividere per 2 fino risultato è dispari, il numero di volte che la divisione accade è n
ecco mio codice (linea 31-32):
exponentOfTwo :: Int -> Int
exponentOfTwo i = if odd i then 0 else 1 + exponentOfTwo (i 'div' 2)
sto ricevendo l'errore "errore lessicale nella stringa/carattere letterale al carattere 'i'" on line 32 della colonna 62.
ho provato a cercare una soluzione a questo errore in tutto il mondo e finora Non ho avuto fortuna
Oh wow quella era una soluzione semplice, mi sento un po 'stupida ora. Non ho mai saputo che doveva essere così. Grazie mille! – Gus