在一系列元组中,我能找到一个符合标准的元组吗?

Mik*_*ner 3 f#

例如,我想找到具有最小日期的元组.我试过这个

let dateRange2 (prices: seq<System.DateTime * float>) =
    let tupleWithMinDate = prices |> Seq.min(fun (date, _) -> date)
    tupleWithMinDate
Run Code Online (Sandbox Code Playgroud)

在管道运营商的所有权利下获得红色波浪形.它说"类型"(seq <System.DateTime*float> - >'a)'不支持'比较'约束.例如,它不支持'System.IComparable'接口"

不确定返回泛型类型是否是问题的一部分 - 我假设Seq.min将知道返回序列的类型.

des*_*sco 10

let dateRange2 (prices: seq<System.DateTime * float>) = prices |> Seq.minBy fst
Run Code Online (Sandbox Code Playgroud)


sep*_*p2k 7

Seq.min 将序列作为其第一个(也是唯一的)参数,而不是函数.

你想用Seq.minBy.

  • 通常,`xxxBy`函数采用额外的投影来进行比较.http://msdn.microsoft.com/en-us/library/ee353635.aspx (2认同)