Ar raketės uodegos rekursija?

Turinys:

Ar raketės uodegos rekursija?
Ar raketės uodegos rekursija?

Video: Ar raketės uodegos rekursija?

Video: Ar raketės uodegos rekursija?
Video: Tail Recursion Explained - Computerphile 2024, Lapkritis
Anonim

Uodegos skambučių optimizavimas Tail rekursija turi ypatingą būseną Racket, nes kompiliatorius pastebi uodegos skambučius ir juos optimizuoja. Paprastai kiekvienas funkcijos iškvietimas, įskaitant rekursinį iškvietimą, išsaugo kitą argumentų rinkinį atminties bloke, vadinamame iškvietimo krūva.

Ar uodega yra rekursija?

Kas yra uodegos rekursija? Rekursyvinė funkcija yra rekursinė, kai rekursinis iškvietimas yra paskutinis funkcijos vykdomas dalykas. Pavyzdžiui, šis C++ funkcijos spausdinimas yra rekursinis.

Ar OCaml uodega yra rekursyvi?

OCaml Tail recursion

Funkcinės kalbos, pvz., OCaml, labai priklauso nuo rekursinių funkcijų Tačiau dėl tokių funkcijų gali pertekėti atmintis arba, tvarkant didelius duomenų rinkinius, sukrauti perpildymus. Tail rekursija tokiais atvejais yra svarbus optimizavimo š altinis.

Ar uodega yra pasikartojanti?

Uodegos rekursyvinis metodas yra vienas būdas nurodyti kartotinį procesą. Iteracija yra tokia įprasta, kad dauguma programavimo kalbų pateikia specialias konstrukcijas jai nurodyti, žinomas kaip kilpos.

Ar greito rūšiavimo uodega yra rekursyvi?

a. TAIL- RECURSIVE-QUICKSORT daro tiksliai tai, ką daro QUICKSORT; todėl rūšiuojama teisingai. QUICKSORT ir TAIL-RECURSIVE-QUICKSORT atlieka tą patį skaidymą, tada kiekvienas iškviečia save argumentais A, p, q − 1. Tada QUICKSORT vėl išsikviečia save su argumentais A, q + 1, r.

Rekomenduojamas: