[Haskell-cafe] Memory leak in infinite recursion
David Feuer
david.feuer at gmail.com
Wed Jun 20 00:06:40 UTC 2018
Actually, only the second set is tail recursive. The first set could be
trouble.
On Tue, Jun 19, 2018, 8:03 PM Mark Wotton <mwotton at gmail.com> wrote:
> Any mutually recursive set of functions calling in tail position should be
> fine - all your examples are ok.
>
> On Tue, Jun 19, 2018, 2:37 PM Никита Фуфаев <kitttoran at gmail.com> wrote:
>
>> 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
>>
>> --
>> Nikita Fufaev
>> _______________________________________________
>> Haskell-Cafe mailing list
>> To (un)subscribe, modify options or view archives go to:
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> Only members subscribed via the mailman list are allowed to post.
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180619/47a21d00/attachment.html>
More information about the Haskell-Cafe
mailing list