let standard = (0, 4.5M, 4L)
let tuples = [| ("A", -2, 1.0M, 2L);
("B", -1, 2.0M, 3L);
("C", 0, 3.0M, 4L);
("D", 1, 4.0M, 5L);
("E", 2, 5.0M, 6L) |]
let qualified = tuples
|> Array.sortBy(fun (_, a, b, c) -> (a, -b, c))
|> Array.filter(fun (_, a, b, c) -> (a, b, c) <= standard)
printfn "%A" qualified
У меня есть массив кортежей и стандарт. Я хочу отсортировать кортежи и выбрать те кортежи, которые соответствуют требованиям.
Для кортежей я игнорирую первый элемент и сортирую второй элемент и четвертый элемент обычным способом, а также сортирую третий элемент в обратном порядке. ; и у меня есть стандартный кортеж, поскольку все кортежи со вторым элементом не меньше стандартного, а третий элемент не больше стандартного являются квалифицированными кортежами. В приведенном выше примере квалифицированный кортеж имеет вид: = [| ("C", 0, 3.0M, 4L) |] Условия таковы: второй элемент >= 0 и третий элемент ‹= 4.5M и четвертый элемент >= 4L Но мой код НЕ работал! Дайте мне знать, как написать функцию, которая может выполнять эту работу! Спасибо и хороших выходных. Джон