【发布时间】:2015-07-22 12:18:05
【问题描述】:
假设我正在尝试在 f# 中实现某种扑克程序。首先这是类型系统的正确使用,这里是大量新手。
type Suit =
| Hearts
| Diamonds
| Spades
| Clubs
type Card = {
Suit:Suit
Rank:int
}
type Hand = {
Cards:List<Card>
}
无论如何,假设我想要一个函数来返回我可能持有的卡片的随机列表。我想会有两个函数链接在一起,但是我很难在不创建大量对象的情况下实现它们。 list 模块中的每个函数都将返回一个新列表,并且 let 关键字使得无法更改引用的值。那么实现这一目标的功能性方法是什么。到目前为止我有这个
let generateCards = {
let ranks = [ 1..52 ]...
}
let shuffle cards = {
}
let cards = shuffle generateCards
【问题讨论】:
标签: f# functional-programming immutability poker