Was ist Tail-Call-Optimierung? Genauer gesagt, was sind einige kleine Codefragmente, wo sie angewendet werden könnten und wo nicht, mit einer Erklärung,
Was ist Tail-Call-Optimierung? Genauer gesagt, was sind einige kleine Codefragmente, wo sie angewendet werden könnten und wo nicht, mit einer Erklärung,
Ich denke, es gibt @tailrecAnmerkungen, um sicherzustellen, dass der Compiler eine rekursive Endfunktion optimiert. Stellen Sie es einfach vor die Erklärung? Funktioniert es auch, wenn Scala im Skriptmodus verwendet wird (z. B. :load <file>unter
Zwei Jahre nach der Optimierung des JVM-Prevent-Tail-Call scheint es eine Prototyp- Implementierung zu geben, und MLVM listet die Funktion seit einiger Zeit als "Proto 80%" auf. Gibt es kein aktives Interesse von Sun / Oracle an der Unterstützung von Tail Calls oder ist es nur so, dass Tail Calls...
Ich habe heute den Befehl "time" unter Unix entdeckt und dachte, ich würde ihn verwenden, um den Unterschied in den Laufzeiten zwischen tail-rekursiven und normalen rekursiven Funktionen in Haskell zu überprüfen. Ich habe folgende Funktionen geschrieben: --tail recursive fac :: (Integral a) =>...
Der Titel der Frage mag etwas seltsam sein, aber die Sache ist, dass meines Wissens nichts gegen die Optimierung von Tail Calls spricht. Beim Durchsuchen von Open Source-Projekten bin ich jedoch bereits auf einige Funktionen gestoßen, die aktiv versuchen, den Compiler daran zu hindern, eine...
Insbesondere wenn ich folgenden Code habe: func sum(n: Int, acc: Int) -> Int { if n == 0 { return acc } else { return sum(n - 1, acc + n) } } Wird der Swift-Compiler es zu einer Schleife optimieren? Und in einem interessanteren Fall weiter unten? func isOdd(n: Int) -> Bool { if n == 0 {...