In Haskell können Sie nicht wie bei einer Liste über ein Tupel iterieren.
Wenn das Tupel nur zwei Elemente enthält, können Sie mit fst
das erste Element des Tupels und mit snd
das zweite Element abrufen.
Eine Möglichkeit zu tun, was ich denke, dass Sie tun möchten, ist dieser Ansatz:
%Vor% Gibt nur die Elemente in der Liste zurück, in denen das erste Element gleich 1 ist; natürlich können Sie x
ersetzen, wo ich 1 setzen.
Um etwas genauer zu sein: (==1).fst
wendet zuerst fst
auf das Element in lst an und wendet dann (==1)
auf das Ergebnis von fst
an - technisch ist der Punkt zusammengesetzt die zwei Funktionen zusammen.
Sie können kein Argument mit einem Platzhalter _
an den Operator ==
(oder an eine andere Funktion) übergeben. Das Argument muss ein realer Wert sein, nicht ein Muster, mit dem verglichen werden soll.
Wenn Sie Mustervergleiche verwenden möchten, können Sie eine Lambda-Funktion als filter
condition:
Außerdem gibt es die vordefinierte Funktion fst
um das erste Element eines Zwei-Element-Tupels zu extrahieren. Dies kann mit ==
kombiniert werden, um denselben Test durchzuführen: