Recursive fonksiyonlar, kısaca kendi kendini tekrar kullanan fonksiyonlardır. Yazılım dünyasında çok sık kullanılan bu fonksiyon yardımıyla karmaşık problemlere kısa çözümler üretebilirsiniz. Şimdi çeşitli örnekler yapalım:
Python’da Faktöriyel Hesaplama
def faktoriyel(sayi):
if sayi == 0:
return 1
else:
return sayi * faktoriyel(sayi-1)
faktoriyel(3); //6
Python'da Fibonacci
Fibonacci dizisinin n. terimini bulan recursive fonksiyon yazalım.
Fibonacci Dizisi (0 1 1 2 3 5 8 13 21 34 ...)
def fibonacci(indis):
if (indis <= 1):
return indis
else:
return fibonacci(indis-1) + fibonacci(indis-2)
fibonacci(8); //21
Fibonacci dizisinin n. terimine kadar olan elemanları listeler:
def fibonacci_dizisi(n, onceki=0, simdiki=1):
if n <= 1:
return [onceki]
else:
return [onceki] + fibonacci_dizisi(n-1, simdiki, onceki+simdiki)
print(fibonacci_dizisi(8))//[0, 1, 1, 2, 3, 5, 8, 13]