Subjek
- #Fungsi Rekursif
- #Rekursi Ekor
- #TCO
Dibuat: 2024-10-12
Dibuat: 2024-10-12 18:47
Saat belajar coding test, dan menambahkan efek animasi pada text
Saat menulis fungsi rekursif, saya mengetahui konsep TCO (Tail Call Optimization) dengan bantuan AI.
Tail Call Optimization (Pengoptimalan Panggilan Ekor) mencegah stack overflow yang disebabkan oleh pemanggilan rekursif, dan membuat penggunaan memori lebih efisien.
Di JavaScript, hal ini ditentukan untuk didukung dalam mode es6 strict, tetapi sepertinya masih belum banyak browser yang mendukungnya.
Rekursi Biasa
Rekursi Ekor
Metode mengakhiri operasi terakhir fungsi dengan pemanggilan fungsi rekursif disebut rekursi ekor.
Frame stack fungsi tidak diperlukan, sehingga mengoptimalkan penggunaan memori!
Cara mengimplementasikan rekursi ekor di JavaScript adalah dengan menggunakan teknik trampolin.
Dalam metode ini, fungsi factorialTCO tidak mengembalikan hasil secara langsung, melainkan mengembalikan fungsi.
Fungsi trampoline terus menjalankan fungsi yang dikembalikan ini untuk mendapatkan hasil akhir.
Ini disebut sebagai teknik utama dalam pemrograman fungsional, dan menarik karena mengatasi kelemahan fungsi rekursif biasa (stack overflow). Sebenarnya, hanya dengan melihat kodenya saja saya tidak langsung mengerti, jadi saya harus mencarinya lagi jika saya bingung.
Komentar0