konnte ich den folgenden Code fehlerlos Couldn't match expected type `a' with actual type `[a]'. `a' is a rigid type variable bound by the type signature for myLast :: [a] -> a
für den folgenden Codekann nicht erwarteten Typen entspricht `einen‚mit dem tatsächlichen Typ `[a]‘
myLast :: [a] -> a
myLast [] = error "Can't call myLast on an empty list!"
myLast (x:_) = x
aber ich erhalte diese Störung auszuführen:
myLast :: [a] -> a
myLast [] = error "Can't call myLast on an empty list!"
myLast (_:x) = x
Ich bin ein Anfänger in Haskell und die Fehlermeldung ist zu griechisch und Latein für mich. Soweit ich das verstehe, kann der Compiler den Typ im zweiten Fall nicht ableiten. Kann mir jemand zeigen, was hier eigentlich passiert?