F#访问lambda中的元组成员
我有一个F#访问lambda中的元组成员,lambda,f#,Lambda,F#,我有一个groups类型DateTime*int*decimal*decimal list,我试图生成一个decimal list,每个元素是组内部列表中第四个元素的总和。 我的尝试如下: groups |> List.map(fun x -> (List.reduce (fun acc elem -> elem + acc )) elem假设为DateTime*int*decimal*decimal,我的问题是如何访问上述lambda中元组的第四个元素?您可以在lambda
groups
类型DateTime*int*decimal*decimal list
,我试图生成一个decimal list
,每个元素是组内部列表中第四个元素的总和。
我的尝试如下:
groups
|> List.map(fun x -> (List.reduce (fun acc elem -> elem + acc ))
elem
假设为DateTime*int*decimal*decimal
,我的问题是如何访问上述lambda中元组的第四个元素?您可以在lambda参数声明中分解元组:fun(u,u,d,)->d
将返回元组的第三个元素
您还可以使用List.sumBy
而不是List.reduce
来简化代码
//sample data
let groups = [
[(System.DateTime(), 1, 1.5M, 2.5M); (System.DateTime(), 1, 4.1M, 2.5M)]
[System.DateTime(), 1, 3.2M, 2.5M]
]
groups
|> List.map (List.sumBy (fun (_,_,d,_) -> d))