tail-recursion

Czym jest rekurencja ogonowa?

Rozpoczynając naukę Lispu, natknąłem się na termin tail-recursive. Co to dokładnie znaczy?

Co To Jest Optymalizacja Połączeń Ogonowych?

Bardzo prosto, co to jest optymalizacja połączeń ogonowych? Dokładniej, czy ktoś może pokazać małe fragmenty kodu, gdzie można go zastosować, a gdzie nie, z wyjaśnieniem dlaczego?

Jak wyrwać się z pętli w Scali?

Jak przełamać pętlę? var largest=0 for(i<-999 to 1 by -1) { for (j<-i to 1 by -1) { val product=i*j ... korzystać z wielu mniejszych funkcji Problem jak współdziałać z zamknięciami. Nie są potrzebne! Jakie jest wyjaśnienie?

Czy Haskell ma optymalizację rekurencyjną?

Odkryłem dzisiaj polecenie" time " w Unixie i pomyślałem, że użyję go do sprawdzenia różnicy w czasie działania między funkcj ... ogonowej. Jest to sprzeczne z tym, co słyszałem w odniesieniu do optymalizacji rekurencyjnej w Lispie. Jaki jest tego powód?

Czy Python optymalizuje rekurencję ogonową?

Mam następujący fragment kodu, który zawodzi z następującym błędem: RuntimeError: maximum recursion depth exceeded Pr ... 000, 0)) Czy powinienem wnioskować, że Python nie wykonuje żadnego rodzaju TCO, czy po prostu muszę go zdefiniować inaczej?

Jak dokładnie działa rekurencja ogonowa?

Prawie rozumiem, jak działa rekurencja ogonowa i jaka jest różnica między nią a zwykłą rekurencją. I only don 't understand ... factorial(n - 1); } Nie ma co robić po wywołaniu samej funkcji w funkcji rekurencji ogonowej, ale to nie ma dla mnie sensu.

Które kompilatory C++ optymalizują rekurencję ogonową?

Wydaje mi się, że optymalizacja rekurencji ogonowej w C i C++ będzie działać idealnie, jednak podczas debugowania nigdy nie w ... -. Jeśli jakikolwiek Destruktor musi być uruchomiony po wywołaniu tail-call, optymalizacja tail-call nie może być wykonana.

Dlaczego nie t.NET/C # optimize for tail-call recursion?

Znalazłem to pytanie o to, które języki optymalizują rekurencję ogonową. Dlaczego C# nie optymalizuje rekurencji ogonowej, ... oid Foo(int i) { if (i == 1000000) return; if (i % 100 == 0) Console.WriteLine(i); Foo(i+1); }

foldl jest rekurencyjny, więc dlaczego foldr działa szybciej niż foldl?

Chciałem przetestować foldl vs foldr. Z tego, co widziałem, powinieneś używać folddl nad foldr, kiedy tylko możesz, ze względ ... e jestem zdezorientowany, dlaczego foldr pokonuje foldl. Czy nie powinien to być oczywisty przypadek, w którym foldl wygrywa?

Czy Ruby wykonuje optymalizację połączeń ogonowych?

Języki funkcyjne prowadzą do wykorzystania rekurencji do rozwiązywania wielu problemów, dlatego wiele z nich wykonuje optymal ... alnego języki (lambda, funkcje takie jak mapa itd.itp.), co mnie ciekawi: czy Ruby wykonuje optymalizację połączeń ogonowych?

Czy JVM zapobiega optymalizacji połączeń ogonowych?

Widziałem ten cytat na pytanie: Jaki jest dobry język funkcjonalny, na którym można zbudować serwis internetowy? Scala w ... wykonać (jest to podstawowe ograniczenie JVM). Czy to prawda? Jeśli tak, to co w JVM tworzy to fundamentalne ograniczenie?

Czy są problemy, których nie można zapisać używając rekurencji ogonowej?

Rekurencja ogonowa jest ważną metodą optymalizacji wydajności w językach funkcyjnych, ponieważ umożliwia wywołania rekurencyj ... że pewnego dnia funkcjonalne kompilatory i interpretery będą wystarczająco inteligentne, aby wykonać konwersję automatycznie?

Dlaczego wywołanie rekurencyjne powoduje StackOverflow na różnych głębokościach stosu?

Próbowałem rozgryźć, w jaki sposób wywołania ogonowe są obsługiwane przez kompilator C#. (odpowiedź: nie są. Ale 64-bitowy ... wsze dzieje się na tej samej głębokości stosu. BONUS Związane z ASLR, w starszych wiadomościach: jak Chrome dostał pwned

Rekurencja ogonowa w C++

Może mi ktoś pokazać prostą funkcję rekurencyjną w C++? Dlaczego rekurencja ogonowa jest lepsza, jeśli w ogóle jest? Jakie są inne rodzaje rekurencji oprócz rekurencji ogonowej?

Jak sprawdzić, czy gcc wykonuje optymalizację rekurencji ogonowej?

Jak sprawdzić, czy gcc (dokładniej g++) optymalizuje rekurencję ogonową w konkretnej funkcji? (Ponieważ pojawiło się to kilk ... em) jest wykonanie wywołania, które w przeciwnym razie spowodowałoby przepełnienie stosu – lub patrząc na wyjście złożenia.")

Jak działa Haskell tail recursion?

Napisałem ten fragment kodu i zakładam, że len jest rekurencyjny, ale nadal występuje przepełnienie stosu. Co się stało? myL ... myLength xs = len xs 0 where len [] l = l len (x:xs) l = len xs (l+1) main = print $ myLength [1..10000000]

Optymalizacja połączeń ogonowych w Mathematica?

Formułując ODPOWIEDŹ na inne pytanie SO, natknąłem się na dziwne zachowanie dotyczące rekurencji ogonowej w Mathematica. Dok ... stwierdzenia w dokumentacji Mathematica lub innego materiałuWRI {[7] } byłoby idealne. Spekulacje są również mile widziane.

Czy są jakieś silniki JavaScript tail Call zoptymalizowane?

Mam rekurencyjny algorytm wyszukiwania ścieżek ogonowych, który zaimplementowałem w Javascript i chciałbym wiedzieć, czy jakikolwiek (all?) przeglądarki mogą mieć wyjątki przepełnienia stosu.

F # vs OCaml: Stack overflow

Znalazłem niedawno prezentację o F # dla programistów Pythona i po jej obejrzeniu postanowiłem samodzielnie wdrożyć rozwiąz ... ows 7 / 64bit, nawet zoptymalizowana wersja przepełnienia stosu binarnego. Finał EDIT : sam znalazłem odpowiedź-patrz niżej.

Czy Scala wspiera optymalizację rekurencji ogonowej?

Czy Scala wspiera optymalizację rekurencji ogonowej?