-
not: recursion'ın ne olduğunu anlamak için yorumun sonuna bakın
bilgisayar terminolojisinde kendini çağıran metotlara verilen isim. bence en elit metotlardan birisi. bu şekilde yazılan tüm fonksiyonlar çok şık, çok elegant oluyor.
örnek vermek gerekirse:
diyelim ki tiyatroda bir koltukta oturuyorsunuz. sıra numaranızı öğrenmek istediniz. arkanızı dönüp bakmak yerine bir sağınızdaki kişiye onun koltuk numarasını soruyorsunuz, onun numarasının bir fazlası sizin koltuk numaranız olmalı. o da bir yanındakine soruyor (aynı metodu kullanıyor). sonra sorduğu kişi de yanındakine soruyor ve bu şekilde 1 numaralı koltukta oturan şahsa kadar zincirleme olarak soruyorlar. 1 numaralı koltuktaki şahıs "ben 1'im" diyor. aynı şekilde baştan sona bir daha geri geliyorsunuz. herkes yanındakine bir ekleyip söylüyor. sonunda size ulaşınca koltuk numaranızı öğreniyorsunuz.
başka bir örnek ise klasik fibonacci serisidir. o da şöyle tanımlanır:
fib(n) =
1; n = 0 ise
1; n = 1 ise
fib(n-1) + fib(n-2); n > 1 ise
(bkz: stack overflow)
(bkz: ackermann fonksiyonu)
şöyle geyiklere de konu olur aynı zamanda:
not: recursion'ın ne olduğunu anlamak için yorumun başına bakın -
kendini yiyen yılan -
recursion'i anlamak icin once recursion'i anlamak gerekir -
en az 1 adet base case(*:temel durum)den oluşan fonksiyonun kendini belli bir düzende çağırması durumudur.
matematikteki parçalı fonksiyonlar da birer recursive fonksiyon sayılabilir aslında.
ayrıca google'a recursion kelimesini yazınca "bunu mu demek istediniz? recursion" şeklinde bir easter egg(*:sürpriz yumurta) vardır.