假设我有一个受歧视的工会:
type card = Smithy | Cellar | Chapel
以及将可区分联合映射到某个值的函数:
let initialCardCount = function
Smithy -> 4
Cellar -> 6
Chapel -> 2
我想生成一个包含工会每个成员的成本的地图,例如:
[(Smithy, 4); (Cellar, 6); (Chapel, 2)]
这可能吗?我希望能够做类似的事情:
List.zip (allValues f) (List.map getCost (allValues f)) |> Map.ofList
这个问题很有帮助,但不是我所需要的;我希望能够访问内存中的工会成员,而不仅仅是检查他们的属性。
我想这样做的原因是我可以有一个可区分的联合代表游戏中所有不同类型的牌,以及一个告诉你每张牌在开始时应该有多少张的函数,然后轻松生成初始卡片到计数的映射。有一个更好的方法吗?