Если у меня есть дискриминационный союз с совместными несколькими значений ребенка (Apple
и MoreApples
оба имеют типа Apple
) ...матча на ребенке предвзято союз
type Apples =
| GrannySmith
| Gala
type Fruit =
| Apple of Apples
| MoreApples of Apples
| Banana
let speakFruit = function
| Apple GrannySmith
| MoreApples GrannySmith -> "granny smith"
| Apple Gala
| MoreApples Gala -> "gala"
| Banana -> "banana"
Есть ли способ, чтобы соответствовать на вспомогательном союза удалить дублирование? - что-то вроде:
let speakFruit2 = function
| _ GrannySmith -> "granny smith"
| _ Gala -> "gala"
| Banana -> "banana"
Вы управляете своими типами или являетесь третьим лицом? Если первое, возможно, сделает что-то вроде [this] (https://ideone.com/Slqg4F)? – ildjarn
Невозможно сделать это, и это на самом деле признак того, что ваши типы недостаточно отражают ваш домен. –