Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell:从元组类型中检索第n个值_Haskell - Fatal编程技术网

Haskell:从元组类型中检索第n个值

Haskell:从元组类型中检索第n个值,haskell,Haskell,我试图从导入的包中访问类型内部的一些数据 类型(由包作者)声明如下: 我试图用如下函数提取类型中的第一个列表: getDates :: MultiBalanceReport -> [DateSpan] getDates (date,_,_) = date 但当我使用该函数时,编译器会抱怨类型不同: • Couldn't match expected type ‘MultiBalanceReport’ with actual type ‘([DateSpan],

我试图从导入的包中访问类型内部的一些数据

类型(由包作者)声明如下:

我试图用如下函数提取类型中的第一个列表:

getDates :: MultiBalanceReport -> [DateSpan]
getDates (date,_,_) = date
但当我使用该函数时,编译器会抱怨类型不同:

• Couldn't match expected type ‘MultiBalanceReport’
              with actual type ‘([DateSpan], t7, t8)’
我觉得编译器只是不知道
MultiBalanceReport
类型的内部细节?我没有导入正确定义类型的包吗


我是Haskell的新手,如果我使用了错误的术语来描述我的问题,那么很抱歉。

您需要在模式匹配中包含新类型

getDates :: MultiBalanceReport -> [DateSpan]
getDates (MultiBalanceReport (date,_,_)) = date

你真的很接近。您在元组类型上进行模式匹配,但实际值是一个包含元组的
MultiBalanceReport


newtype
是一种带有构造函数的数据类型,因此需要首先从构造函数
MultiBalanceReport
中展开元组:

getDates :: MultiBalanceReport -> [DateSpan]
getDates (MultiBalanceReport (date,_,_)) = date
getDates::MultiBalancerPort->[DateSpan]

GETEDISTS(多BalAccReRePoT(日期,γ,))=日期<代码>,我会认为这是一个反模式。只需使用
data MBR=MBR[DateSpan][MultiBalanceReportRow]MultiBalanceReportTotals
并避免元组,只使用
MBR
构造函数。
getDates :: MultiBalanceReport -> [DateSpan]
getDates (MultiBalanceReport (date,_,_)) = date
getDates :: MultiBalanceReport -> [DateSpan]
getDates (MultiBalanceReport (date,_,_)) = date