Klausimai pažymėti kaip „tail-recursion“

Uodegos rekursija yra rekursinė strategija, kurioje funkcija atlieka tam tikrą darbą ir paskambina pati. "Uodega" reiškia faktą, kad rekursija yra pačiame funkcijos gale. Daugelis - ypač programavimo kalbų kompiliatoriai - gali paversti šio tipo skambučius į iteraciją, tai yra, uodegos rekursija palaikomomis kalbomis gali būti naudojama be baimės, nepriklausomai nuo skambučių skaičiaus.
25
atsakymai

Kas yra uodegos rekursija?

Nors pradėjau mokytis lisp, aš atėjau per terminą „tail-recursive“. Ką tai reiškia?
paklausė 29 rug. '08 6:48
8
atsakymai

Kas yra uodegos varpų optimizavimas?

Labai paprasta, kas yra uodegos pokalbių optimizavimas? Konkrečiau, ar kas nors gali parodyti keletą nedidelių kodų fragmentų, kur jis gali būti naudojamas, ir kur ne, paaiškindami priežastį?
lapkričio 22 d. '08 9:56
15
atsakymai

Kaip išeiti iš ciklo Scala?

Kaip pakabinti ciklą? var didžiausias = 0 (i <-999 iki 1 iki -1) {už (j <-i iki 1 iki -1) {val product = i * j, jei (didžiausias> produktas) // noriu išeiti čia dar jei (product.toString.equals (product.toS ...
nustatytas balandžio 30 d '10, 9:34
20
atsakymai

Supratimo rekursas

Turiu rimtą problemą suprasti recesiją mokykloje. Kai profesorius apie tai kalba, man atrodo, kad tai suprantu, bet iš karto, kai jį išbandžiau, jis smarkiai išpučia mano smegenis. Visą naktį bandžiau išspręsti Hanojaus bokštus ir visiškai ...
04 Bal '09 23:10
6
atsakymai

Ar Python optimizuoja uodegos rekursiją?

Turiu tokį kodo fragmentą, kuris nevykdo su tokia klaida: RuntimeError: viršijamas maksimalus rekursijos gylis. Bandžiau perrašyti jį, kad būtų galima atlikti uodegos rekursių optimizavimą (TCO). Manau, kad šis kodas turi būti ...
lapkričio 27 d. '12 22:53
5
atsakymai

Kas, jei yra, C ++ kompiliatoriai atlieka uodegos rekursių optimizavimą?

Man atrodo, kad jis puikiai tinka uodegos rekursijos optimizavimui tiek C, tiek C + +, bet derinimo metu niekada nematau rėmelių, rodančių šį optimizavimą. Tai gerai, nes kamino man pasakoja, kaip giliai upės yra ...
paklausė 29 rug. '08 10:35
7
atsakymai

Kaip veikia uodegos rekursija?

Aš beveik suprantu, kaip veikia uodegos rekursija, ir skirtumas tarp jo ir normalios rekursijos. Aš nesuprantu, kodėl jam nereikia atminti savo grįžimo adreso. // uodegos rekursas int fac_times (int n, int acc) {if (n == 0) ...
nustatyti kovo 20 d. 13 val
5
atsakymai

Ar JVM optimizuoja uodegos skambutį?

Šią citatą pamačiau į klausimą: kas yra gera funkcinė kalba norint sukurti interneto paslaugą? Visų pirma „Scala“ nepalaiko uodegos skambučio išimties, išskyrus savarankiškas rekursines funkcijas, kurios riboja kompozicijų tipus, kuriuos galite padaryti ...
nustatytas rugsėjo 20 d '08 0:35
6
atsakymai

Ar „Javascript“ varikliams optimizuoti yra uodegos?

Aš turiu uodegos rekursyvaus kelio nustatymo algoritmą, kurį įgyvendinau „Javascript“, ir norėčiau sužinoti, ar yra (visi?) Naršyklės gali gauti išimtis.
nustatyti 07 rugsėjis '10 19:26
5
atsakymai

Kodėl .NET / C # nėra optimizuotas uodegos rekursijai?

Radau šį klausimą apie tai, kurios kalbos optimizuoja uodegos rekursiją. Kodėl C # optimizuoja uodegos rekursiją, kai įmanoma? Konkrečiu atveju, kodėl šis metodas nėra optimizuotas į kilpą („Visual Studio 2008 32-bit“, jei jis turi ...
nustatė sausio 29 d '09 15:20
5
atsakymai

Ar „Ruby Tail Call Optimization“ veikia?

Funkcinės kalbos veda prie rekursijos panaudojimo daugeliui problemų išspręsti, todėl daugelis jų atlieka „Tail Call Optimization“ (TCO) optimizavimą. TCO kviečia funkcijų skambučius iš kitos funkcijos (arba pačios, šiuo atveju ši funkcija ...
gegužės 05 d
2
atsakymai

Kodėl rekursinis skambutis sukelia „StackOverflow“ skirtingose ​​kamino gylėse?

Bandžiau išsiaiškinti praktinius klausimus, kaip C # kompiliatorius tvarko uodegos skambučius. (Atsakymas: taip nėra. Tačiau 64 bitų JIT (-iai) atliks TCE (galinio skambučio pašalinimas). Taikomi apribojimai.) Taigi, aš parašiau nedidelį testą ...
lapkričio 27 d. '13, 17:58 val
4
atsakymai

Ar „Haskell“ turi rekursinį optimizavimą?

Šiandien „Unix“ komandą atradau „laiko“ komandoje ir maniau, kad norėčiau ją naudoti, kad patikrintumėte skirtumą tarp uodegos rekursinių ir normalių rekursinių funkcijų Haskelle. Aš parašiau šias funkcijas:
nustatyti 24 okt. '12, 5:55
9
atsakymai

Funkcinis programavimas. Daug dėmesio skiriama rekursijai, kodėl?

Sutikau funkcinį programavimą [FP] (naudojant Scala). Vienas dalykas, kuris išeina iš mano pradinių žinių, yra tas, kad FP yra labai priklausomos nuo rekursijos. Ir, atrodo, tik grynoje FP, vienintelis būdas tai padaryti ...
nustatytas rugsėjo 30 d '12 10:42
2
atsakymai

F # vs OCaml: kamino perpildymas

Neseniai rado pristatymą apie „F #“ Python programuotojams ir, peržiūrėjęs, nusprendžiau savarankiškai įgyvendinti skruzdėlių galvosūkį. Yra skruzdė, kuri gali judėti išilgai tinklelio.
nustatytas 24 sep. '11 13:57