Po prostu, czym jest optymalizacja połączeń ogonowych? Mówiąc dokładniej, jakie są małe fragmenty kodu, w których można je zastosować, a gdzie nie, z wyjaśnieniem,
Po prostu, czym jest optymalizacja połączeń ogonowych? Mówiąc dokładniej, jakie są małe fragmenty kodu, w których można je zastosować, a gdzie nie, z wyjaśnieniem,
Myślę, że istnieje @tailrecadnotacja zapewniająca, że kompilator zoptymalizuje funkcję rekurencyjną ogona. Czy po prostu umieszczasz to przed deklaracją? Czy działa również, jeśli Scala jest używana w trybie skryptowym (na przykład przy użyciu :load <file>REPL)?...
Wydaje się, że dwa lata po optymalizacji jvm -zapobiega-ogonowi-wywołania , pojawiła się prototypowa implementacja i MLVM od jakiegoś czasu określa tę funkcję jako „proto 80%”. Czy po stronie Sun / Oracle nie ma aktywnego zainteresowania wspieraniem wywołań końcowych, czy po prostu wywołania...
Odkryłem dzisiaj polecenie „time” w Uniksie i pomyślałem, że użyję go do sprawdzenia różnicy w czasie wykonywania między ogonowymi funkcjami rekurencyjnymi a normalnymi rekurencyjnymi funkcjami w Haskellu. Napisałem następujące funkcje: --tail recursive fac :: (Integral a) => a -> a fac...
Tytuł pytania może być trochę dziwny, ale chodzi o to, że o ile wiem, nic nie przemawia przeciwko optymalizacji wywołań ogonowych. Jednak podczas przeglądania projektów open source natknąłem się już na kilka funkcji, które aktywnie próbują powstrzymać kompilator przed optymalizacją wywołań...