Могу ли я найти в последовательности кортежей несколько критериев? - PullRequest
3 голосов
/ 04 октября 2010

Например, я хотел бы найти кортеж с минимальной датой. Я попробовал это

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

Получение красного волнистого под всем правом оператора трубопровода. Он говорит: «Тип» (seq -> 'a)' не поддерживает ограничение «сравнение». Например, он не поддерживает интерфейс «System.IComparable» "

Не уверен, если возвращение универсального типа является частью проблемы - я предполагал, что Seq.min будет знать, чтобы возвратить тип, из которого сделана последовательность.

Ответы [ 2 ]

10 голосов
/ 04 октября 2010
let dateRange2 (prices: seq<System.DateTime * float>) = prices |> Seq.minBy fst
7 голосов
/ 04 октября 2010

Seq.min принимает последовательность в качестве первого (и единственного) аргумента, а не функцию.

Вы хотите использовать Seq.minBy.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...