In Haskell haben wir die Möglichkeit, Einschränkungen für Typen mit einer logischen und zu kombinieren.Wie kann ich zwei Typenbeschränkungen mit einer logischen oder in Haskell kombinieren?
Betrachten Sie die folgende
type And (a :: Constraint) b = (a, b)
oder mehr kompliziert
class (a, b) => And a b
instance (a, b) => And a b
Ich möchte wissen, wie man logisch oder zwei Bedingungen zusammen in Haskell.
Mein nächster Versuch ist das, aber es funktioniert nicht ganz. In diesem Versuch vereinheitliche ich Typ-Constraints mit Tags und definiere sie dann mit impliziten Parametern.
Es funktioniert fast, aber der Benutzer muss den letzten Teil anwenden, und der Compiler sollte das für mich tun. Dieser Fall lässt auch keine dritte Wahl zu, wenn beide Bedingungen erfüllt sind.
Wie kann ich logisch oder zwei Einschränkungen zusammen?
Was ist mit Entweder? Es würde dich klar machen, wenn beide zufrieden sind. –