Dies mag seltsam erscheinen, und Sie sind herzlich eingeladen, einen besseren Weg vorzuschlagen, um es zu tun.
Hier ist mein Ziel:
Ich möchte jedes Element einer in eine Funktion übergebenen Liste durchlaufen. Wenn es vom Konstruktor Y ist, möchte ich eine bestimmte Funktion aufrufen. Wenn es vom Konstruktor Z ist, möchte ich es überspringen.
Wenn es eine Möglichkeit gibt, dies in einer if-Anweisung zu überprüfen, scheint das der richtige Weg zu sein, da ich kein else schreiben muss. Allerdings weiß ich nur, wie ich dies in einer Übereinstimmung überprüfen kann.
Zum Beispiel:
let meineFunktion liste =
List.iter (fun x -> match x with
| Y y -> andereFunktion y
) liste;;
Jetzt erhalte ich eine Warnung, dass Z nicht behandelt werden kann. Also könnte ich etwas wie folgt hinzufügen...
let meineFunktion liste =
List.iter (fun x -> match x with
| Y y -> andereFunktion y
| Z z -> (*überspringen*)
) liste;;
Natürlich kann ich die Übereinstimmung mit Z nicht einfach leer lassen....
Wie kann ich das erreichen, was ich versuche zu tun?