继续使用F#创建纸牌游戏系列。现在我不得不在卡片列表中添加值。我有
type Player = {Name : String; Hand : Card list}
我能从牌组中取出牌,效果很好。我也可以使用
创建新列表let player = {Name = "Player"; Hand = List.Empty}
let testlist = List.append player.Hand anotherlist
但我无法弄清楚如何将另一个名单直接添加到玩家手中。
答案 0 :(得分:7)
您可以使用with
构造:
let playerWithHand = { player with Hand = testlist }
由于F#中的记录是不可变的,因此通常不会改变现有记录(尽管也有办法),而是创建一个表示播放器新状态的新值。 with
关键字使这非常容易,因为它会克隆记录并将其某些属性更改为指定的新值。