ich tat diese Art der Sache in meinem Code:Verwenden Sie den numerischen Konstruktor mit dem algebraischen Datentyp, anstatt mit Maybe?
data MyType = Cons1 a b
data OtherType = OtherType
{ val1 :: Int
, val2 :: String
, val3 :: Maybe MyType
}
und ich frage mich, ob der Code diese Veränderung ordentlicheres wäre/einfacher und was die Vor/Nachteile sind:
data MyType = Cons1 a b | Missing
data OtherType = OtherType
{ val1 :: Int
, val2 :: String
, val3 :: MyType
}
Ich lese Zeilen aus einer Datei in [OtherType], jede Zeile hat 4 Spalten, wobei die Spalten 3 und 4 verwendet werden, um val3 :: MyType zu erstellen. Momentan benutze ich readMaybe, um a und b zu lesen und sie dann an eine Funktion weiterzuleiten, die Nothing zurückgibt, wenn beide Nothing oder Just MyType sind, wenn sie Just a und Just b sind. Ich dachte, ich könnte dies ändern, um Missing zurückzugeben und damit eine Schicht Verpackung zu entfernen.
Die OtherType-Defs wurden korrigiert – flimbar