【发布时间】:2014-02-21 14:25:16
【问题描述】:
通过编写二十一点来学习 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
我有这个功能(暂时忽略 ace 可以有 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(*)
【问题讨论】:
标签: f#