Tag: tail-recursion

Tail-Rekursion wird eine rekursive Strategie, in der eine Funktion hat eine bestimmte Menge der Arbeit, dann ruft selbst. Die „Rute“ bezieht sich auf die Tatsache, dass die Rekursion, ist am Ende der Funktion. Viele-vor allem funktional-Programmiersprache-Compiler können diese Art der Anrufe, die in der iteration, d.h. tail recursion in den unterstützten Sprachen verwendet werden kann, ohne Angst vor einem stack-überlauf, unabhängig von der Anzahl der Aufrufe.

Gibt es Probleme, die nicht geschrieben werden kann mit tail-Rekursion?

Anzahl der Antworten 5 Antworten
Tail-Rekursion ist ein wichtiger performance-Optimierung stragegy in funktionalen Sprachen, denn es erlaubt rekursive Aufrufe verbrauchen Konstante stack (anstatt O(n)). Gibt es irgendwelche Probleme, die einfach nicht geschrieben werden kann in eine tail-rekursive Stil, oder ist es immer

Warum ist Clojure viel schneller als die Scala auf einem rekursiven Funktion hinzufügen?

Anzahl der Antworten 4 Antworten
Gab mir ein Freund diesen code-Schnipsel in Clojure (defn sum [coll acc] (if (empty? coll) acc (recur (rest coll) (+ (first coll) acc)))) (time (sum (range 1 9999999) 0)) mich zu und fragte, wie geht es tarif

Stack-überlauf von rekursiven Funktionsaufruf in Lisp

Anzahl der Antworten 4 Antworten
Ich Lerne Lisp aus dem Buch "Land of Lisp" von Conrad Barski. Jetzt habe ich traf meine erste Stolperstein, wo der Autor sagt: Ruft sich selbst auf diese Weise ist nicht nur erlaubt, in Lisp, ist aber

Was ist tail-recursion?

Anzahl der Antworten 26 Antworten
Zwar angefangen zu lernen, lisp, habe ich auf den Begriff gekommen tail-rekursive. Was bedeutet es genau? Für neugierige: die beiden, während Sie und während Sie wurden in die Sprache für eine sehr lange Zeit. Zwar wurde im

Tut Haskell haben tail-rekursive Optimierung?

Anzahl der Antworten 4 Antworten
Entdeckte ich die "Zeit" - Befehl in unix-heute und dachte, ich würde es verwenden, um zu überprüfen, der Unterschied in den Laufzeiten zwischen tail-rekursiven-und normal-rekursive Funktionen in Haskell. Schrieb ich die folgenden Funktionen: --tail recursive fac ::

Id zurückgegeben, 1 Ausgang status error

Anzahl der Antworten 1 Antworten
Ich habe versucht, herauszufinden, diesen Fehler für fast eine Stunde und habe Probleme. Ich war das Lesen dieses post: C kompilieren-Fehler: Id zurückgegeben, 1 exit status und jemand sagte, dass es sein könnte, weil das Programm noch

Tail-rekursive Funktionen in Scheme

Anzahl der Antworten 1 Antworten
Studiere ich für ein Weihnachts-test und mache ein paar Probe-Prüfung-Fragen, denen ich begegnet bin, hat mich ein bisschen ratlos Kann ich tun, regelmäßige Rekursion in Ordnung, aber ich kann nicht umbrochen, mein Kopf herum, wie dasselbe zu

Generieren von Fibonacci-Reihe in F#

Anzahl der Antworten 10 Antworten
Ich bin gerade erst anfangen zu lernen, F# mit VS2010 und unten ist mein Erster Versuch in die Generierung der Fibonacci-Reihe. Was ich versuche zu tun ist, erstellen Sie eine Liste aller zahlen weniger als 400. let

Tail-Rekursion in C++

Anzahl der Antworten 6 Antworten
Kann mir jemand zeigen, eine einfache tail-rekursive Funktion in C++? Warum ist tail recursion besser, wenn es gar ist? Welche anderen Arten der Rekursion gibt es neben der tail recursion? InformationsquelleAutor der Frage neuromancer | 2010-04-22

Warum nicht .NET/C# optimieren Sie für die tail-call-recursion?

Anzahl der Antworten 5 Antworten
Fand ich diese Frage über die Sprachen optimieren tail-Rekursion. Warum C# nicht optimieren, tail recursion, Wann immer möglich? Für einen konkreten Fall, warum nicht diese Methode optimiert in einer Schleife (Visuelle Studio 2008 32-bit, falls das von Bedeutung ist)?:

Was ist eine Schwanzrekursion?

Anzahl der Antworten 23 Antworten
Zwar angefangen zu lernen, lisp, habe ich auf den Begriff gekommen tail-rekursive. Was bedeutet es genau? InformationsquelleAutor der Frage |

Unterstützt Scala die Tail Recursion-Optimierung?

Anzahl der Antworten 4 Antworten
Tut-Scala-support-tail-Rekursion Optimierung? InformationsquelleAutor der Frage Roman Kagan | 2009-11-04

Rekursion verstehen

Anzahl der Antworten 19 Antworten
Ich habe große Schwierigkeiten zu verstehen Rekursion in der Schule. Wann immer der professor ist darüber zu reden, ich scheinen, um es zu bekommen, aber sobald ich versuche es auf meine eigenen es völlig bläst mein Hirn.

Was ist Tail Call Optimierung?

Anzahl der Antworten 8 Antworten
Sehr einfach, was tail-call-Optimierung? Genauer gesagt, Kann das jemand zeigen einige kleine code-Schnipsel, wo es angewendet werden könnte, und wo nicht, mit einer Erklärung, warum? InformationsquelleAutor der Frage majelbstoat | 2008-11-22

Wie überprüfe ich, ob gcc eine Tail-Recursion-Optimierung durchführt?

Anzahl der Antworten 8 Antworten
Wie erkenne ich ob gcc (genauer gesagt, g++) ist die Optimierung von tail-Rekursion in einer bestimmten Funktion? (Weil es kam ein paar mal: ich will nicht, um zu testen, ob gcc optimieren tail-Rekursion im Allgemeinen. Ich möchte

foldl ist tail rekursiv, also wie kommt foldr schneller als foldl?

Anzahl der Antworten 7 Antworten
Wollte ich testen foldl vs foldr. Von dem, was ich gesehen habe, die Sie verwenden sollten foldl über foldr, Wann immer Sie kann durch Schwanz reccursion Optimierung. Macht das Sinn. Jedoch nach der Ausführung dieser test-ich bin

Hat Haskell eine tail-rekursive Optimierung?

Anzahl der Antworten 4 Antworten
Entdeckte ich die "Zeit" - Befehl in unix-heute und dachte, ich würde es verwenden, um zu überprüfen, der Unterschied in den Laufzeiten zwischen tail-rekursiven-und normal-rekursive Funktionen in Haskell. Schrieb ich die folgenden Funktionen: --tail recursive fac ::

Verhindert die JVM Tail-Call-Optimierungen?

Anzahl der Antworten 5 Antworten
Sah ich dieses Zitat auf die Frage: Was ist eine gute funktionale Sprache, die für den Aufbau einer web-service? Scala insbesondere nicht unterstützt tail-call-Beseitigung, außer in selbst-rekursiven Funktionen, die Grenzen der Arten der Zusammensetzung, die Sie tun

Wie kann ich in Scala aus einer Schleife ausbrechen?

Anzahl der Antworten 16 Antworten
Wie kann ich ausbrechen aus einer Schleife? var largest=0 for(i<-999 to 1 by -1) { for (j<-i to 1 by -1) { val product=i*j if (largest>product) //I want to break out here else if(product.toString.equals(product.toString.reverse)) largest=largest max product

Sind Javascript-Engines optimiert?

Anzahl der Antworten 6 Antworten
Habe ich ein tail-rekursive Wegfindung Algorithmus, den ich habe in Javascript implementiert und würde gern wissen, ob (alle?) Browser eventuell stack-overflow-exceptions. InformationsquelleAutor der Frage clofresh | 2010-09-07

Sind Funktionen in JavaScript Tail-Call optimiert?

Anzahl der Antworten 2 Antworten
Ich habe versucht, Sie zu verstehen Tail call optimization im Kontext von JavaScript und geschrieben haben, die unter rekursive und tail-rekursive Methoden für factorial(). Rekursiv: function factorial (n) { if (n < 2) { return 1; }

Optimiert Python die Tail-Rekursion?

Anzahl der Antworten 6 Antworten
Habe ich das folgende Stück code, das schlägt mit der folgenden Fehlermeldung: Absturz mit Laufzeitfehler: maximale Rekursionstiefe überschritten Habe ich versucht, diese umschreiben zu ermöglichen tail recursion optimization (TCO). Ich glaube, dass dieser code sollte erfolgreich gewesen,

F # vs OCaml: Stapelüberlauf

Anzahl der Antworten 2 Antworten
Ich fand vor kurzem ein Vortrag über F# für Python-Programmiererund nachdem ich es, beschlossen, eine Lösung für die "ant-puzzle" auf meinen eigenen. Es ist eine Ameise, die können zu Fuß rund um auf einem planaren raster. Die

Führt Ruby Tail Call Optimization durch?

Anzahl der Antworten 5 Antworten
Funktionalen Sprachen führen zur Verwendung von Rekursion zu lösen eine Menge Probleme, und deshalb sind viele von Ihnen durchführen Tail-Call-Optimization (TCO). TCO bewirkt, dass Aufrufe einer Funktion aus einer anderen Funktion (oder sich selbst, in welchem Fall

Umgekehrte Liste Scala

Anzahl der Antworten 6 Antworten
Folgenden code: import scala.util.Random object Reverser { //Fails for big list def reverseList[A](list : List[A]) : List[A] = { list match { case Nil => list case (x :: xs) => reverseList(xs) ::: List(x) } } //Works

eine rekursive Fibonacci-Funktion in Clojure

Anzahl der Antworten 8 Antworten
Ich bin ein Neuling in clojure, der wollte sehen, was all die Aufregung ist. Herauszufinden der beste Weg, um bekommen ein Gefühl für Sie ist das schreiben eines einfachen code, ich dachte, ich würde beginnen mit einer

Wie genau funktioniert die Tail Rekursion?

Anzahl der Antworten 7 Antworten
Ich fast verstehen, wie die tail-Rekursion funktioniert und den Unterschied zwischen ihm und einem normalen Rekursion. Ich nur nicht verstehen, warum es nicht erfordern stack zu erinnern, seine Adresse zurück. //tail recursion int fac_times (int n, int

F # Tail Recursive Function Beispiel

Anzahl der Antworten 5 Antworten
Ich bin neu in F# und war das Lesen über tail-rekursive Funktionen und hatte gehofft, jemand könnte mir zwei verschiedene Implementierungen einer Funktion foo - tail-rekursive und eine, die ist nicht so, dass ich besser das Prinzip

C-Leitungsanruf-Optimierung

Anzahl der Antworten 6 Antworten
Oft höre ich Leute sagen, dass C nicht durchführen tail call elimination. Obwohl es nicht garantiert wird durch die standard -, ist es nicht in der Praxis durchgeführt, indem jeder anständige Umsetzung überhaupt? Angenommen, Sie sind nur

Welche, wenn überhaupt, C ++ - Compiler tun Tail-Rekursion-Optimierung?

Anzahl der Antworten 5 Antworten
Scheint es mir, dass es perfekt funktionieren würde gut tun, tail-Rekursion Optimierung in C und C++, aber beim Debuggen habe ich nie scheinen, um zu sehen, eine frame-stack, der angibt, diese Optimierung. Das ist gut, weil der