1
比方說,我有一個區分聯合:地圖上的所有值在區分聯合
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
This question是有用的,但它並不完全是我需要的;我希望能夠在內存中訪問聯合成員,而不僅僅是檢查其屬性。
我想這樣做的原因是我可以有一個歧視的聯盟來代表遊戲中所有不同類型的牌,以及一個函數,告訴你每張牌在開始時應該有多少個,然後輕鬆生成卡的初始映射到計數。有一個更好的方法嗎?
你會怎麼做,如果你識別聯合案例之一是string'的'T?然後你需要想出一個構造函數,可以想象'string'可以用在'getCost'中。在這一點上事情變得相當複雜 - 也許你可以告訴我們你正在試圖使用它的? –
我不明白你在問什麼,但是我期待着看到一些關於使用F#的Dominion的博客/應用:) – Brian