Hacker News new | ask | show | jobs
by glutamate 4099 days ago
It is (or was) complicated, you could stack overflow on two mutually recursive functions or tail calling inside continuations.
1 comments

I'm getting constant memory on this (mono v3.12.1)

    let rec beep x =
        if x = 0 then x else boop (x - 1)
    and boop y =
        if y = 0 then y else beep (y - 1)
    
    let main argv =
        printfn "%A" (beep 999999999)
        0
Those are mutually recursive functions, but they're not using continuations.