Wenn Ihr Code komplexer ist als Ihr Beispiel, möchten Sie vielleicht so etwas tun, indem Sie die Alternative
-Instanz für Maybe
und die PatternGuards
-Erweiterung (Teil von Haskell2010) verwenden.
Falls Sie nicht damit vertraut sind, wählt <|>
den linken Just
, wenn es einen gibt, und gibt andernfalls Nothing
zurück, wodurch der Musterschutz fehlschlägt.
Sie können -XViewPatterns
verwenden, um beliebige Funktionen hinzuzufügen, um Ihre beiden Fälle zu einem einzigen Muster zusammenzufassen.
Ihr Muster ist jetzt eine Funktion p
, die das Objekt ergibt, das Sie abgleichen möchten:
viel einfacher!
Wir müssen jedoch p
definieren als:
oder wie auch immer Sie die Daten vor der Anzeige normalisieren möchten.
Referenzen: Das GHC-Benutzerhandbuch Kapitel zu Ansichtsmustern
Tags und Links haskell syntax pattern-matching