我正在尝试从导入的包访问类型内的一些数据。
该类型(由包作者)声明如下:
newtype MultiBalanceReport =
MultiBalanceReport ([DateSpan]
,[MultiBalanceReportRow]
,MultiBalanceReportTotals
)
我正在尝试使用如下函数提取类型中的第一个列表:
getDates :: MultiBalanceReport -> [DateSpan]
getDates (date,_,_) = date
但是当我使用该函数时,编译器提示类型不同:
• Couldn't match expected type ‘MultiBalanceReport’
with actual type ‘([DateSpan], t7, t8)’
我觉得编译器只是不知道 MultiBalanceReport
类型的内部细节?我是否没有导入正确定义类型的包?
我是 Haskell 的新手,如果我使用错误的术语来描述我的问题,我很抱歉。
最佳答案
newtype
是一种带有构造函数的数据类型,因此您需要从构造函数中展开元组MultiBalanceReport
首先:
getDates :: MultiBalanceReport -> [DateSpan]
getDates <b>(MultiBalanceReport</b> (date,_,_)<b>)</b> = date
关于Haskell:从元组类型中检索第n个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47732502/