Ik weet dat staartrecursie betekent dat de recursieve oproep de laatste instructie moet zijn in de body van een procedure, om over staartrecursie te mogen spreken.
Maar nu is mijn vraag, of onderstaand stukje code dan ook staartrecursief is ... Want in feite is de "cons"-functie de laatste instructie in je body (aleh denk ik toch). Als je de waarde van de recursieve oproep gedaan hebt, moet je daarna nog eens consen.
Dus: Gewoon recursief of staartrecursief?
(De code is maar een simplistisch zelfgekozen voorbeeld in Scheme :eusa_whistle: )
(define (lalalala expressions omgeving)
(if (null? lalala)
'()
(cons (functieaanroep argumenten)(lalalala expressions2 omgeving))))