Pertanyaan yang diberi tag recursion

109
rekursi versus iterasi

Apakah benar untuk mengatakan bahwa di mana pun rekursi digunakan, sebuah forloop dapat digunakan? Dan jika rekursi biasanya lebih lambat, apa alasan teknis untuk menggunakannya forberulang kali? Dan jika selalu memungkinkan untuk mengubah rekursi menjadi forloop, apakah ada aturan praktis untuk...

104
Mengapa fungsi di Ocaml / F # tidak rekursif secara default?

Mengapa fungsi di F # dan Ocaml (dan mungkin bahasa lain) tidak secara default rekursif? Dengan kata lain, mengapa desainer bahasa memutuskan bahwa sebaiknya Anda secara eksplisit membuat Anda mengetik recdalam deklarasi seperti: let rec foo ... = ... dan tidak memberikan kemampuan rekursif...

99
Apakah JVM mencegah pengoptimalan panggilan ekor?

Saya melihat kutipan ini pada pertanyaan: Apa bahasa fungsional yang baik untuk membangun layanan web? Scala khususnya tidak mendukung eliminasi panggilan ekor kecuali dalam fungsi rekursif sendiri, yang membatasi jenis komposisi yang dapat Anda lakukan (ini adalah batasan mendasar dari...

98
Contoh rekursi dunia nyata [ditutup]

Tertutup . Pertanyaan ini perlu lebih difokuskan . Saat ini tidak menerima jawaban. Ingin memperbaiki pertanyaan ini? Perbarui pertanyaan sehingga hanya berfokus pada satu masalah dengan mengedit posting ini . Tutup 7 tahun yang lalu . Perbaiki...

90
Cara membuat pohon di Twig

Saya ingin membuat pohon dengan kedalaman yang tidak dapat ditentukan (anak dari anak dari anak kecil, dll.). Saya perlu mengulang melalui array secara rekursif; bagaimana saya bisa melakukan ini di Twig?

86
Warisan dan rekursi

Misalkan kita memiliki kelas-kelas berikut: class A { void recursive(int i) { System.out.println("A.recursive(" + i + ")"); if (i > 0) { recursive(i - 1); } } } class B extends A { void recursive(int i) { System.out.println("B.recursive(" + i + ")"); super.recursive(i + 1);...

62
Melacak berapa kali fungsi rekursif dipanggil

function singleDigit(num) { let counter = 0 let number = [...num + ''].map(Number).reduce((x, y) => {return x * y}) if(number <= 9){ console.log(number) }else{ console.log(number) return singleDigit(number), counter += 1 } } singleDigit(39) Jalankan cuplikan kodeSembunyikan...