Ich habe folgende Funktion in meinem (turn-based) Spiel-Code, der alle rechtlichen Schritte für einen Spieler in einem Spiel auflistet:Liste Verständnis 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) ]
Jetzt frage ich mich, was wäre, wenn die Differenz verwenden I Liste Verständnis und yield!
zu tun folgenden:
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 ]
ich könnte diese Funktion viele Male in einigen Fällen verwenden, so dass ich ein wenig besorgt über die Leistung.
Sie sollten Sequenzen anstelle von Listen verwenden. –
Anstatt zu fragen, warum nicht jeder für sich selbst messen? Sie können '# time' in F # Interactive verwenden, um das grundlegende Timing durchzuführen. – kvb
https://ericlippert.com/2012/12/17/performance-rant –