У меня есть вопрос о том, как лучше всего разработать программу, над которой я работаю в Haskell. Я пишу физический симулятор, что я и делал с букетом на стандартных императивных языках, и обычно основной метод выглядит примерно так:
while True:
simulationState = stepForward(simulationState)
render(simulationState)
И мне интересно, как сделать что-то подобное в Haskell. У меня есть функция step :: SimState -> SimState
и функция display :: SimState -> IO ()
, которая использует HOpenGL для рисования состояния моделирования, но я не понимаю, как это сделать в "петле" рода, так как все решения, которые я могу придумать что-то вроде изменчивости. Я немного нуб, когда дело доходит до Haskell, так что вполне возможно, что мне не хватает очень очевидного дизайнерского решения. Кроме того, если есть лучший способ архитектовать мою программу в целом, я был бы рад ее услышать.
Спасибо заранее!