Bu yazıda recursive fonksiyonlardan bahsetmeden önce fonksiyon türlerine bakalım. İki tür fonksiyon bulunmakta, kendini tekrarlayan recursive ve kendini tekrarlamayan iterator fonksiyon. Genelde C# ile yazılara kod örnekleri veriyordum bu sefer python’dan verelim 🙂 İlginçtir recursive diyince genelde herkesin aklına faktöriyel geliyor 🙂 Recursive fonksiyon genelde faktöriyel, fibonacci gibi durumlarda kullanılır. Ama bir çılgınlık yapıp isteğiniz farklı problemlerde de kullanabilirsiniz.
Kendi kendini çağıran fonksiyonlara recursive fonksiyon denir. Bir nevi for döngüsü gibi düşünülebilir.
def CountBackwards(number):
if(number!=0):
print(number)
CountBackwards(number-1)
else:
print("bitti")
CountBackwards(25)
Aklınıza kesinlikle “neden döngü yerine recursive fonksiyon kullanayım” sorusu gelmiştir. Hemen bildiğim kadarıyla açıklayayım.
- Yazımı döngülere göre daha kolaydır. (Bu madde bana saçma geliyor ama genel geçer kabul görmüş, o yüzden paylaşayım dedim)
- Fonksiyonel dillerde döngü ve değişken bulunmamaktadır. Bu tarz dillerde döngü bulunmadığı için tekrar gerektiren kodlar recursive fonksiyonlar kullanılarak yazılır.
Şimdi recursive vs for yapalım 🙂
RECURSİVE | FOR |
Yavaş çalışır | Hızlı çalışır |
Daha fazla hafıza alanına ihtiyaç duyar | Daha az hafıza alanına ihtiyaç duyar |
Daha okunabilir | Daha az okunabilir |
Stack kullanılır | Stack kullanılmaz |
