In Haskell, habe ich ein Modul mit einem Teil Auftragsart:Kann eine benutzerdefinierte Musterzerlegung in Haskell bereitgestellt werden?
data PartialOrder a = PartialOrder [a] [(a, a)]
ich denn das ist nicht, wie ich die Art verwendet werden soll ist nicht den Wert Konstruktor exportieren, aber ich will noch in der Lage sein Muster stimmen mit dem PartialOrder-Typ außerhalb des Moduls überein; Ist das möglich? Insbesondere möchte ich Muster Spiel etwas zu können, die nicht der Typ, Konstruktor, sondern stattdessen auf Mustererkennung etwas wie folgt aus:
f (PartialOrder xs le) = ...
Wo le
ist eine Funktion, die explizite Ordnung in die definierte implizit definieren Wertkonstruktor. Ich weiß, dass eine solche Einrichtung in Scala verfügbar ist, gibt es eine Möglichkeit, das Gleiche in Haskell zu tun?
Vielen Dank im Voraus.
Beat mich durch Sekunden! –
@ChrisTaylor: Die gute altmodische "schnellste Waffe im West-Problem": P. –
Die neue Erweiterung PatternSynonyms liefert, was Sie wollen, aber es ist noch nicht ganz verfügbar. – augustss