Leere Liste in Haksell drucken
Hier ist der Code:
import System.Environment
myReverse :: [a] -> [a]
myReverse [] = []
main = print (myReverse [])
Wenn ich das mit GHC kompiliere, erhalte ich den folgenden Fehler:
[1 von 1] Compiling Main (problem5_myReverse.hs, problem5_myReverse.o) problem5_myReverse.hs: 6: 8: Keine Instanz für (Show a0), die aus einer Verwendung von entstehtprint' The type variable
a0 'ist nicht eindeutig. Mögliche Fehlerbehebung: Fügen Sie eine Typensignatur hinzu, die diese Typvariablen behebt. Hinweis: Es gibt mehrere potenzielle Instanzen: instance Show Double - Defined inGHC.Float' instance Show Float -- Defined in
GHC.Float 'Instanz (Integral a, Show a) => Show (GHC.Real.Ratio a) - Definiert inGHC.Real' ...plus 23 others In the expression: print (myReverse []) In an equation for
main ': main = print (myReverse [])
Aber wenn ich die Signatur von änderemyReverse::[a]->[a]
zumyReverse::[Int]->[Int]
Der Quellcode wird ohne Probleme kompiliert
Kann jemand sagen, wie ich die allgemeine Unterschrift behalten kann[a] -> [a]
aber damit es für leere Integer-Listen funktioniert?