Generischer Standardwert in Haskell

8

Gegeben zwei Funktionen:

%Vor%

Gibt es einen Weg (in GHC) kann ich es möglich machen zu schreiben:

%Vor%

Ohne eine Typunterschrift für f x hinzufügen zu müssen, z. B.

%Vor%

Wenn Sie einen "Standardtyp" haben, den f x braucht, wenn keiner angegeben ist?

Ich vermute, dass ich etwas wie Defaulting in Haskell Prime brauche, aber dies wurde in GHC implementiert (oder in GHC Kopf)?

    
Clinton 19.02.2015, 14:35
quelle

1 Antwort

1

Dumme Nicht-Antwort:

%Vor%

Der Mangel an "Verzug" ist eine der Schmerzen von Haskells Geschmack von Generika. Die Dinge werden zu allgemein und Haskell weiß nicht, welche Instanz er auswählen soll. Der Status Quo ist, dass "der Programmierer Mehrdeutigkeit explizit auflösen muss". Anstatt Regeln auf oberster Ebene für die Standardisierung festzulegen, müssen Sie nur im Einzelfall die entsprechende Instanz auswählen. Num default ist eine Hacky-Ausnahme von dieser Regel.

Der Vorschlag, den Sie verlinkt haben, ist ein gutes Beispiel dafür, warum die Auswahl von Standardwerten nicht trivial ist, wenn mehrere Klassen beteiligt sind.

%Vor%     
Dan Burton 19.02.2015 22:28
quelle

Tags und Links