LINUX.ORG.RU

История изменений

Исправление AndreyKl, (текущая версия) :

Вообще говоря, самый наверное безгеморойный способ - это написать монадическое окружение по типу вот такого

https://stackoverflow.com/questions/32504352/imperative-loop-in-haskell

https://hackage.haskell.org/package/monad-loops-0.4.3/docs/Control-Monad-Loop...

(я думаю ты знаком).

И тогда можно писать прям как в императивных языках, т.е. ни на что внимания не обращать.

Но при запуске всего этого дела (runMonad когда будет вызываться), надо будет в этот ран монад добавить число шагов просто заведомо большее чем ожидаемое число шагов. И всё будет работать. А там уже доказывать что всё завершиться за конечное число шагов, как отдельная задачка.

Исходная версия AndreyKl, :

Вообще говоря, самый наверное безгеморойный способ - это написать монадическое окружение по типу вот такого

https://stackoverflow.com/questions/32504352/imperative-loop-in-haskell

https://hackage.haskell.org/package/monad-loops-0.4.3/docs/Control-Monad-Loop...

(я думаю ты знаком).

И тогда можно писать прям как в императивных языках, т.е. ни на что внимания не обращать.

Но при запуске всего этого дела (runMonad когда будет вызываться), надо будет в этот ран монад добавить число шагов просто заведомо большее чем ожидаемое число шагов. И всё будет работать.