Comment by mrkeen

3 days ago

Supporting recursion only to a depth of 1000 (or whatever) is equivalent to supporting loops of up to 1000 iterations.

If I put out a language that crashed after 1000 iterations of a loop, I'd welcome the rudeness.

Plenty of languages, including very serious ones like C and Rust, have bounded recursion depth.

  • Then let me rephrase:

    If every iteration of a while-loop cost you a whole stack frame, then I'd be very rude about that language.

    This works, btw:

      #include <stdio.h>
    
      long calc_sum(int n, long acc) {
        return n == 0
          ? acc
          : calc_sum(n-1, acc+n);
      }
    
      int main(void) {
        int iters = 2000000;
        printf("Sum 1...%d = %ld\n", iters, calc_sum(iters, 0));
        return 0;
      }

    • > If every iteration of a while-loop cost you a whole stack frame, then I'd be very rude about that language.

      Well, sure, but real programmers know how to do while loops without invoking a function call.