Ваша measureSelectTimes
функция принимает два аргумента в качестве отдельных аргументов, но вместо этого вам нужна функция, которая принимает их как кортеж.Один из вариантов - просто изменить функцию на кортеж (если это логично для аргументов, которые будут кортежироваться).
Альтернативно, вы можете написать коинатор, который превращает функцию, принимающую два аргумента, в функцию, принимающую кортеж,Обычно это называется uncurry
и существует на каком-то функциональном языке:
let uncurry f (a, b) = f a b
Тогда вы можете написать:
input |> Seq.map (uncurry measureSelectTimes)
Это выглядит хорошо для простого использования, как это, но яСчитаю, что слишком много использовать комбинаторы в F # - не очень хорошая идея, поскольку затрудняет чтение кода для менее опытных функциональных программистов.Я, вероятно, написал бы что-то вроде этого (потому что я нахожу это более читабельным):
[ for (time1, time2) in input -> measureSelectTimes time1 time2 ]