Ich habe ein Problem mit einer Funktion, die nur den Schwanz einer Liste zurückgeben sollte. Die Funktionen sind myTail und sollten ein brauchbares Ergebnis liefern, auch wenn die Eingabe eine leere Liste ist.Haskell Tail-Funktion für leere Listen
Ich möchte alle 3 Möglichkeiten verstehen: Pattern-Matching, bewachte Gleichung und bedingte Ausdrücke
dies funktioniert:
> myTail_pat :: [a] -> [a]
> myTail_pat (x:xs) = xs
> myTail_pat [] = []
Aber dieses:
> myTail_guard (x:xs) | null xs = []
> | otherwise = xs
gibt mir den Fehler: Programm error: pattern match failure: myTail_guard [] Wie kann ich die Funktion ohne Muster deklarieren?
Vielen Dank.
könnte Ihnen helfen: http://cs.anu.edu.au/Student/comp1100/haskell/tourofsyntax.html# Guards – Artelius
Sie können einfach tun 'myTail = 1 fallen lassen ' – newacct
Die Muster passende Version ist sowieso mehr Haskell-Like. – Rayne