2
我已經按照我的(回合制)遊戲代碼,其中列出了一個遊戲玩家所有的法律動作功能:列表理解VS List.concat
let moves game =
let movesType1 game = ... //returns Move list
let movesType2 game = ... //returns Move list
let movesType3 game = ... //returns Move list
List.concat [ (movesType1 game); (movesType2 game); (movesType3 game) ]
現在,我不知道會是什麼如果我使用列表中理解和yield!
做以下區別:
let moves game =
let movesType1 game = ... //returns Move list
let movesType2 game = ... //returns Move list
let movesType3 game = ... //returns Move list
[ yield! movesType1 game
yield! movesType2 game
yield! movesType3 game ]
我可能會使用這個功能很多次在某些情況下,所以我有點擔心的表現。
您應該使用序列而不是列表。 –
而不是問,爲什麼不爲自己衡量每一個?您可以在F#Interactive中使用'#time'來執行基本計時。 – kvb
https://ericlippert.com/2012/12/17/performance-rant –