Questa funzione non è corretto e non compila:Perché un Num non può essere paragonato a 0?
checkIsZero :: (Num a) => a -> String
checkIsZero a = if a == 0
then "Zero"
else "Not zero"
Questo non funziona a causa del confronto tra un Num
e 0
nell'espressione a == 0
. La modifica di Num
a Integral
rende questa funzione valida.
Cos'è questa stregoneria malvagia che non mi permette di confrontare i miei numeri con 0
?!
in ghci sembra funzionare per Num; stai usando ghc? qual è il messaggio di errore? – jev
Metto la funzione sopra in 'functions.hs', poi eseguo': l functions.hs' in 'ghci' e ottieni l'errore' Impossibile dedurre (Eq a) derivante dall'uso di '==' ' –
@jev Dal momento che GHC 7.4, non dovrebbe funzionare, almeno non con quel tipo di firma. 'Eq' non è più implicito da' Num'. –