this post was submitted on 04 Mar 2024
939 points (97.4% liked)

Programmer Humor

32558 readers
355 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] sacredfire@programming.dev 3 points 8 months ago* (last edited 8 months ago) (1 children)

I thought Tail recursion just gets turned into an iterative loop by the compiler? Hence why you won’t get a stack overflow. And since in procedural languages you can just use a loop in place of a tail recursive function you would never run into this problem, right? At least this is how it was taught to me when I was learning about it in lisp.

[–] barsoap@lemm.ee 3 points 8 months ago

Yes you still need the loop part I skipped over that one, only focussing on the "why no return address on the stack" part. It's what you need to focus on to see whether a recursive call is in a tail position and if it is the compiler does the rest no need to worry about that part.