I see your point. Yes, continuation (CPS) is pretty cool to replace the hidden stack magic for recursive algorithms. :-)
Best regards. On Wed, Dec 15, 2021, 07:45 Stefan Israelsson Tampe <stefan.ita...@gmail.com> wrote: > Maybe you think the below program is trivial, but I adore named let's so > much that I just cannot fathom that when people go functional they totally > miss this beauty > > > (define (count tree) > > ;; s = total sum up to now > > ;; t = tree of the type (car = child . cdr = siblings) > > ;; cont is the continuation, (cont 10) will continue > > ;; the calculation with the sum=10 see how we initiate > > ;; with a continuation that evaluates returns it's argument > > > (let loop ((s 0) (t tree) (cont (lambda (s) s))) > > (if (pair? t) > > (loop s (car t) (lambda (s) (loop s (cdr t) cont))) > > (cont (if (number? t) t 0)))) >