Some of my iterations are delightfully recursive - eviltoast
  • TechNom (nobody)@programming.dev
    link
    fedilink
    English
    arrow-up
    8
    ·
    7 months ago

    I looked at the post again and they do talk about recursion for looping (my other reply talks about map over an iterator). Languages that use recursion for looping (like scheme) use an optimization trick called ‘Tail Call Optimization’ (TCO). The idea is that if the last operation in a function is a recursive call (call to itself), you can skip all the complexities of a regular function call - like pushing variables to the stack and creating a new stack frame. This way, recursion becomes as performant as iteration and avoids problems like stack overflow.

    • aubeynarf@lemmynsfw.com
      link
      fedilink
      arrow-up
      2
      ·
      6 months ago

      Not just calls to self - any time a function’s last operation is to call another function and return its result (a tail call), tail call elimination can convert it to a goto/jump.