Beispiel für eine Funktionsdefinition im Datenkonstruktor eines neuen Typs

8

Wir können Typ-Synonym für Funktionsdefinitionen verwenden, z. B.

%Vor%

Dies verhindert, dass wir jedes Mal eine lange Funktionsdefinition schreiben.

Verwenden:

%Vor%

Anstelle von

%Vor%

das ist besser lesbar und weniger Code.

Einfache algebraische Datentypen sind einfach und leicht zu Musterabgleich usw., z. B.

%Vor%

Da ich mehr auf Haskell-Datentypen eingehe, habe ich festgestellt, dass wir beim Definieren eines neuen Typs eine Funktionsdefinition im Datenkonstruktor haben können.

%Vor%

Das verwirrt mich ein wenig und hat nicht viele Beispiele dafür gesehen. In gewisser Weise ist die Idee der Funktion höherer Ordnung, bei der eine Funktion eine andere Funktion als Argument annehmen kann, ähnlich dieser Situation, außer hier gilt sie für den Datentyp. Das Haskell-Wiki sagt nicht viel über "Datentyp-Definition höherer Ordnung" aus. Mir ist klar, dass ich all diese Begriffe falsch verstehen kann, also korrigiere mich bitte und weise mich auf mehr Lesen hin. Ich möchte wirklich eine konkrete Verwendung davon sehen. Danke!

%Vor%     
vis 14.12.2011, 16:11
quelle

2 Antworten

11

Sie können diese Art von Mustern in vielen Situationen verwenden. Wenn Sie beispielsweise eine Funktion wünschen, die Strings auf verschiedene Arten transformiert, haben Sie möglicherweise einen solchen Datentyp (Dies ist nur ein Beispiel, das das Prinzip demonstriert - schreiben Sie keinen Code wie diesen!):

%Vor%

Dann könnte ein Programm, das dies verwendet, aussehen:

%Vor%     
dflemstr 14.12.2011, 16:30
quelle
4
%Vor%

Wie C.A.McCann sagt, gibt es an Funktionen wirklich nichts Besonderes.

    
dave4420 14.12.2011 16:26
quelle

Tags und Links