Dies ist die Definition für einen neuen Datentyp:In Haskell, was bedeutet: +: in Datentypdefinition bedeuten?
data Total a = Total a :+: Total a
|...
Was bedeutet: +: Mittelwert in dieser Art Definition?
Dies ist die Definition für einen neuen Datentyp:In Haskell, was bedeutet: +: in Datentypdefinition bedeuten?
data Total a = Total a :+: Total a
|...
Was bedeutet: +: Mittelwert in dieser Art Definition?
Es ist ein Datenkonstruktor in Infix-Form geschrieben. Sie können einen Operator als Konstruktor haben, wenn er mit :
beginnt.
Um es kurz zu machen, ist ':' ein Großbuchstaben-Symbol: D –
Warum gibt es ein: nach +? – Sam
Beachten Sie, dass ab GHC 7.6 die Erweiterung "TypeOperators" jetzt alle Infix-Operatoren als "Großbuchstaben" behandelt. (Das bricht bestehenden Code, der Infix-Operatoren als Typvariablen verwendet ...) –
Es ist nicht gültig in Standard Haskell. Es ist eine seltsame GHC Erweiterung :) – singpolyma
@singpolyma: Es ist Standard [Haskell 98 Syntax] (http://www.haskell.org/onlinereport/syntax-iso.html) (siehe _consym_ Produktion). Schließlich ist der ':' - Konstruktor für Listen nur ein Sonderfall. Vielleicht haben Sie an 'TypeOperators' gedacht? – hammar
@hammar Oh, hmm, ich dachte an 'TypeOperators'. Mir war nicht bewusst, dass die Verwendung von Operatoren für Datenkonstruktoren Standard war. Es ist sehr hässlich. Normalerweise sind hässliche Dinge Erweiterungen :) – singpolyma