Konu
- #Rekürsif fonksiyon
- #TCO
- #Kuyruk rekürsiyonu
Oluşturulma: 2024-10-12
Oluşturulma: 2024-10-12 18:47
Kod testlerini çalışırken ve metne animasyon efekti eklerken
özyinelemeli fonksiyon yazarken, AI'ın yardımıyla TCO (Tail Call Optimization) kavramını öğrendim.
Kuyruk özyinelemesi optimizasyonu, özyinelemeli çağrılardan kaynaklanan yığın taşmasını önler ve bellek kullanımını verimli hale getirir.
JavaScript'te, es6 strict modunda desteklenmesi belirtilmiştir, ancak henüz birçok tarayıcı tarafından desteklenmiyor gibi görünüyor.
Genel Özyineleme
Kuyruk Özyinelemesi
Fonksiyonun son işlemini özyinelemeli fonksiyon çağrısıyla bitirme yöntemine kuyruk özyinelemesi denir.
Fonksiyon yığını çerçevesine gerek kalmadığından bellek kullanımı optimize edilir!
JavaScript'te kuyruk özyinelemesini uygulamanın yolu, trampolin tekniğini kullanmaktır.
Bu yöntemde, factorialTCO fonksiyonu doğrudan sonuç döndürmek yerine fonksiyon döndürür.
trampoline fonksiyonu, bu döndürülen fonksiyonları sürekli çalıştırıp sonucu elde eder.
Fonksiyonel programlamada önemli bir teknik olarak adlandırılıyor ve mevcut özyinelemeli fonksiyonların dezavantajlarını (yığın taşması) çözmesi açısından ilgi çekici. Aslında sadece koda bakarak anlamak zor olduğundan, kafam karıştığında tekrar bakmam gerekecek.
Yorumlar0