Есть ли способ сопоставления с образцом для распознаваемых объединяющих функций, например ::-
type Test =
| A of string
| B of int
| C of char
let DefaultTest t =
match t with
| A(_) -> A(null)
| B(_) -> B(0)
| C(_) -> C('\u0000')
let a = A |> DefaultTest
Очевидно, что этот код не является допустимым F #, поскольку DefaultTest принимает один параметр типа Test, а не 'a -> Test. Есть ли способ достичь этого без указания значения для дискриминируемого объединения?
То, что я ищу, в конечном счете, это функция, которая вводит функцию типа 'a -> Test и выводит Test (значение по умолчанию' a).