Pertanyaan yang diberi tag «tail-call»

8
Metode apa yang ada untuk menghindari stack overflow dalam algoritma rekursif?
Pertanyaan Apa cara yang mungkin untuk menyelesaikan stack overflow yang disebabkan oleh algoritma rekursif? Contoh Saya mencoba menyelesaikan masalah Project Euler 14 dan memutuskan untuk mencobanya dengan algoritma rekursif. Namun, program berhenti dengan java.lang.StackOverflowError. Maklum. Algoritma memang meluap tumpukan karena saya mencoba untuk menghasilkan urutan Collatz untuk jumlah yang sangat …

4
Keterbatasan apa yang diberlakukan JVM pada optimasi panggilan ekor
Clojure tidak melakukan optimasi panggilan ekor sendiri: ketika Anda memiliki fungsi rekursif ekor dan Anda ingin mengoptimalkannya, Anda harus menggunakan formulir khusus recur. Demikian pula, jika Anda memiliki dua fungsi yang saling rekursif, Anda dapat mengoptimalkannya hanya dengan menggunakan trampoline. Scala compiler dapat melakukan TCO untuk fungsi rekursif, tetapi tidak …
36 scala  clojure  jvm  tail-call 

2
Y combinator dan optimisasi panggilan ekor
Definisi kombinator Y dalam F # adalah let rec y f x = f (y f) x f berharap sebagai argumen pertama beberapa kelanjutan untuk subproblem rekursif. Menggunakan yf sebagai kelanjutan, kita melihat bahwa f akan diterapkan pada panggilan yang berurutan yang dapat kita kembangkan let y f x = …

3
Manakah alternatif untuk menggunakan tumpukan untuk mewakili semantik panggilan fungsi?
Kita semua tahu dan suka bahwa panggilan fungsi biasanya diimplementasikan menggunakan stack; ada bingkai, alamat pengirim, parameter, seluruh lot. Namun, stack adalah detail implementasi: konvensi pemanggilan dapat melakukan hal yang berbeda (mis. X86 menggunakan panggilan cepat (beberapa) register, MIPS dan pengikut menggunakan register windows, dan sebagainya) dan optimisasi dapat melakukan …

4
Ketika tidak ada TCO, kapan harus khawatir meniup tumpukan?
Setiap kali ada diskusi tentang bahasa pemrograman baru yang menargetkan JVM, pasti ada orang mengatakan hal-hal seperti: "JVM tidak mendukung optimisasi panggilan balik, jadi saya memprediksi banyak tumpukan yang meledak" Ada ribuan variasi pada tema itu. Sekarang saya tahu bahwa beberapa bahasa, seperti Clojure misalnya, memiliki konstruksi berulang khusus yang …
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.