Say, someone who has no prior experience with programming, and is at a rather 'young' age (Teen still) wants to get ahead of the game, and start up now, rather than later. Would one go about this by reading SICP? I've seen it linked so many times, I've only got to think it's a start.
And then you write a tail-recursive iteration over some long enough list that crashes at the end, having evicted all useful information from the ring buffer.
I did consider that, as far as I can see it isn't really fixable with a fixed size buffer. Or, you discover that your program blows the heap because some objects that must be long dead are still referenced from your circular buffer. What's more, the behaviour depends on the interpreter settings and isn't under your control.
I thought the circular references were a problem in python anyway because it used reference counting *shrugs*
is not at all obvious when a call is in the tail position
The rules are very plain in functional languages, but I can see it being a problem in imperative ones. It's not uncommmon to see foo = bar.baz()
return foo
which would ideally be optimized, but that's me digressing into sufficiently smart compiler territory.
And it's not something unimportant, some pleasant addition that we can make without, ...
No-one ever said that you should make do without stack traces, nice strawman