Ich versuche, auf einige Daten innerhalb eines Typs von einem importierten Paket zuzugreifen.Haskell: Nth-Wert vom Typ abrufen, der ein Tupel ist
Der Typ wird erklärt (von den Paketautoren) als so:
newtype MultiBalanceReport =
MultiBalanceReport ([DateSpan]
,[MultiBalanceReportRow]
,MultiBalanceReportTotals
)
Und ich versuche, die erste Liste in der Art mit einer Funktion zu extrahieren etwa so:
getDates :: MultiBalanceReport -> [DateSpan]
getDates (date,_,_) = date
aber wenn ich die Funktion zu verwenden, beschwert sich der Compiler, dass die Typen nicht gleich sind:
• Couldn't match expected type ‘MultiBalanceReport’
with actual type ‘([DateSpan], t7, t8)’
ich wie die Co fühlen mpiler kennt nicht die inneren Details des MultiBalanceReport
Typs? Wird das Paket, das den Typ korrekt definiert, nicht importiert?
Ich bin neu bei Haskell, es tut mir so leid, wenn ich die falsche Nomenklatur verwende, um mein Problem zu beschreiben.
Ich würde die Ansicht, dass ein Antipattern sein . Verwenden Sie einfach einen 'data MBR = MBR [DateSpan] [MultiBalanceReportRow] MultiBalanceReportTotals' und vermeiden Sie das Tupling, indem Sie nur den' MBR'-Konstruktor verwenden. – chi