Hello everyone
In C you can't implement main loop with recursion like
void mainLoop() {
doSomething();
mainLoop();
}
because without optimisations stack will overflow.
In haskell it's common to write
mainLoop = doSomething >> mainLoop, and it doesn't leak memory because of haskell's evaluation model.
Does memory leak or argument stack overflow happen in this case?
mainLoop = doSomething >> mainLoop >> exit ExitSuccess
What about this case?
mainLoopModeA = do
doSomething
when condition mainLoopModeB
mainLoopModeA
mainLoopModeB = do
doSomethingElse
when anotherCondition mainLoopModeA
mainLoopModeB
or this case?
mainLoopModeA = do
doSomething
if condition
then mainLoopModeB
else mainLoopModeA
mainLoopModeB = do
doSomethingElse
if anotherCondition
then mainLoopModeA
else mainLoopModeB
--