Die Funktion Paare muss in etwa so funktionieren:
pairs [1, 2, 3, 4] -> [(1, 2), (2, 3), (3, 4)]
Die Funktion Paare muss in etwa so funktionieren:
pairs [1, 2, 3, 4] -> [(1, 2), (2, 3), (3, 4)]
Nur der Vollständigkeit halber eine "einfachere" Version mit expliziter Rekursion:
pairs (x:xs@(y:_)) = (x, y) : pairs xs
pairs _ = []
Das Konstrukt x:xs@(y:_)
bedeutet "eine Liste mit einem Kopf x
und einen Schwanz xs
die mindestens ein Element enthält y
". Der Grund dafür ist y
verdoppelt sowohl das zweite Element des aktuellen Paares als auch das erste Element des nächsten Paares. Andernfalls müssten wir einen Sonderfall für Listen der Länge 1 schaffen.
pairs [_] = []
pairs [] = []
pairs (x:xs) = (x, head xs) : pairs xs
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.