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