2
Обучение F # путем написания блэкджек. У меня есть эти типы:Как сделать выражение этого совпадения более кратким?
type Suit =
| Heart = 0
| Spade = 1
| Diamond = 2
| Club = 3
type Card =
| Ace of Suit
| King of Suit
| Queen of Suit
| Jack of Suit
| ValueCard of int * Suit
У меня есть эта функция (игнорируя пока что тузы могут иметь 2 разных значения):
let NumericValue =
function | Ace(Suit.Heart) | Ace(Suit.Spade) | Ace(Suit.Diamond) | Ace(Suit.Club) -> 11
| King(Suit.Heart) | King(Suit.Spade)| King(Suit.Diamond) | King(Suit.Club) | Queen(Suit.Heart) | Queen(Suit.Spade)| Queen(Suit.Diamond) | Queen(Suit.Club) | Jack(Suit.Heart) | Jack(Suit.Spade)| Jack(Suit.Diamond) | Jack(Suit.Club) -> 10
| ValueCard(num, x) -> num
Есть ли способ я могу включать в себя диапазон или что-то? Как [Ace (Suit.Heart) .. Ace (Suit.Club)]. Или даже лучше Ace (*)
Желаю. Компилятор сообщает мне, что Ace является конструктором; он не может использоваться сам по себе. – dudeNumber4
@ dudeNumber4 вы уверены, что ставите подстановочный знак после Ace? –
@MatthewMcveigh, дерьмо, вот что я пропал без вести! – dudeNumber4