Diese Funktion ist falsch und wird nicht kompiliert:Warum kann eine Num nicht mit 0 verglichen werden?
checkIsZero :: (Num a) => a -> String
checkIsZero a = if a == 0
then "Zero"
else "Not zero"
Dies wegen des Vergleichs zwischen a == 0
einem Num
und 0
im Ausdruck nicht funktioniert. Das Ändern Num
zu Integral
macht dies eine gültige Funktion.
Was ist das für eine böse Zauberei, die mich nicht mit 0
vergleicht?!
in GHCI definiert ist es für Num scheint zu funktionieren; verwendest du ghc? Was ist die Fehlermeldung? – jev
Ich setze die obige Funktion in 'functions.hs' dann tue': l functions.hs' in 'ghci' und bekomme den Fehler' Konnte nicht ableiten (Gl. A), der sich aus einer Verwendung von '==' ergibt –
@jev Seit GHC 7.4 sollte es nicht funktionieren, zumindest nicht mit dieser Signatur. 'Eq' wird nicht länger von' Num' impliziert. –