Why don't you just write it explicitly:
let toTableau2D (a, b, c) = let toto = a
If you want to refer to seqinit , you can always restore the triple or use a named template:
let toTableau2D ((a, b, c) as seqinit) = let toto = a
EDIT:
If you are not using reflection, you cannot have the fst function for any type of tuple. In your example, writing some utility functions and reusing them will not hurt:
let fst3 (a, _, _) = a let snd3 (_, b, _) = b let thd3 (_, _, c) = c let toTableau2D (seqinit: seq<'a*'b*'c>) = let inputd = seqinit |> groupBy2 fst3 snd3 // ...
If you want to make this work for an arbitrary number of tuple elements, consider changing tuples in lists and using pattern matching in lists.
source share