On Sun, Dec 13, 2020 at 04:01:24PM +0100, Zelphir Kaltstahl wrote: > Hi Tomas! > > In some way what you write makes sense. Let me state here, that I did > read that book and worked through it for a year though, even through the > complicated parts like the y-combinator and some chapters I must have > read like 4 or 5 times and discovered new aspects on each try. That's it -- I'm through some n-th iteration and still go "oh!" from time to time :-D > What is typically the case in the book is a different situation though, > than what was in Taylan's procedure. Usually it is the list you are > working on in that iteration, which you check for being (null? ...), not > the thing, that you give as argument to a recursive call or as a return > value, which you add in some way to the result. Usually the questions > from the quote are asked once the argument is received in the next > iteration. That I definitely usually do, but in Taylan's answer there is > an (if (null? ...) ...) for the `rest`, inside the case, where the usual > (null? ...) check is already done on the subtree, which we recur on. I have the hunch that this is only shifting things one level up or down the stack, but basically, it's the same principle at work. I'd have to fiddle for a while with that to see whether I'm totally off, though. Anyway, a reminder for me to do the n+1st iteration: "Do It, Do It Again, and Again, and Again, ..." :-) Thanks for that! Cheers - t