Verwendung habe ich eine naive Implementierung eines gameloopStapelüberlaufausnahme, wenn Rohrleitungen in tail-rekursive Funktion
let gameLoop gamestate =
let rec innerLoop prev gamestate =
let now = getTicks()
let delta = now - prev
gamestate
|> readInput delta
|> update delta
|> render delta
|> innerLoop delta
innerLoop 0L gamestate
Diese Implementierung löst eine Stackoverflow. In meinen Augen sollte dies rekursiv sein. Ich könnte eine Arbeit so machen
let gameLoop gamestate =
let rec innerLoop prev gamestate =
let now = getTicks()
let delta = now - prev
let newState = gamestate
|> readInput delta
|> update delta
|> render delta
innerLoop now newState
innerLoop 0L gamestate
Also meine Frage ist, warum das erste Codebeispiel eine Stackoverflow-Ausnahme auslöst.
Auf welcher Plattform laufen Sie? –
Um zu verdeutlichen: Funktioniert die von Ihnen gepostete Version der Arbeit in Ordnung? – Peter
@FyodorSoikin Ich bin auf Windows 10 mit fsi Version 14.0.23413.0 – Xiol