Tail-call-optimering Svansrekursion har specialstatus i Racket eftersom kompilatorn upptäcker svansanrop och optimerar dem. Vanligtvis gör varje anrop till en funktion, inklusive ett rekursivt anrop, att ytterligare en uppsättning argument sparas i ett minnesblock som kallas anropsstacken.
Är svans en rekursion?
Vad är svansrekursion? En rekursiv funktion är svansrekursiv när ett rekursivt anrop är det sista som exekveras av funktionen. Till exempel är följande C++-funktionsutskrift svansrekursiv.
Är OKaml-svans rekursiv?
OCaml Tail-rekursion
Funktionella språk som OCaml förlitar sig högt på rekursiva funktioner Sådana funktioner kan dock leda till överförbrukning av minne eller, vid hantering av stora datamängder, att stapla överflöden. Svansrekursion är en viktig källa till optimering i sådana fall.
Är svansen rekursiv iterativ?
En rekursiv svansmetod är ett sätt att specificera en iterativ process. Iteration är så vanligt att de flesta programmeringsspråk tillhandahåller speciella konstruktioner för att specificera det, så kallade loopar.
Är quicksort tail rekursivt?
a. TAIL- RECURSIVE-QUICKSORT gör precis vad QUICKSORT gör; så det sorterar rätt. QUICKSORT och TAIL-RECURSIVE-QUICKSORT gör samma partitionering, och sedan anropar sig var och en med argumenten A, p, q − 1. QUICKSORT anropar sig sedan igen, med argumenten A, q + 1, r.