Python Higher Order Functions

Hüseyin

Hüseyin

Üye
Top Poster Of Month
Katılım
21 Ocak 2024
Mesajlar
78
Tepkime puanı
27
Puanları
18
Bilgisayar programlamada, yüksek dereceli fonksiyonlar diğer fonksiyonları girdi olarak alan veya fonksiyonları çıktı olarak döndüren fonksiyonlardır. Fonksiyonel programlamanın önemli bir parçasıdır ve Python da dahil olmak üzere modern programlama dillerinde önemli bir rol oynarlar.

Yüksek Dereceli Fonksiyonlar Nedir?

Yüksek dereceli bir fonksiyon, diğer fonksiyonları argüman olarak alabilen ve/veya fonksiyonları çıktı olarak döndürebilen bir fonksiyondur. Bu fonksiyonlar daha özlü, esnek ve soyut kod yazmanıza olanak tanır. Yüksek dereceli fonksiyonlar genellikle mevcut fonksiyonlardan yeni fonksiyonlar oluşturmak, koddaki yaygın kalıpları soyutlamak ve daha modüler ve yeniden kullanılabilir kod yazmak için kullanılır.

Örneğin, bir fonksiyonu ve bir yinelenebilir dosyayı argüman olarak alan ve fonksiyonu yinelenebilir dosyadaki her bir öğeye uygulamanın sonucunu döndüren aşağıdaki fonksiyonu düşünün:
Python:
def apply_to_each(func, iterable):
    return [func(x) for x in iterable]

def square(x):
return x * x

numbers = [1, 2, 3, 4, 5]
squared_numbers = apply_to_each(square, numbers)
print(squared_numbers) # Output: [1, 4, 9, 16, 25]

Burada, apply_to_each bir yüksek dereceli fonksiyondur çünkü argüman olarak bir fonksiyon, kare, alır.

Python'da Yaygın Yüksek Dereceli Fonksiyonlar

Python'da map, filter ve reduce gibi yaygın olarak kullanılan birkaç yüksek dereceli fonksiyon vardır:

map: map bir fonksiyonu ve bir yinelenebilir dosyayı argüman olarak alır ve fonksiyonun orijinal yinelenebilir dosyadaki her bir öğeye uygulanmasının sonucu olan yeni bir yinelenebilir dosya döndürür:
Python:
def square(x):
    return x * x

numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(square, numbers))
print(squared_numbers) # [1, 4, 9, 16, 25]

filter: filter bir fonksiyonu ve bir iterable'ı argüman olarak alır ve orijinal iterable'dan sadece fonksiyonun True döndürdüğü elemanları içeren yeni bir iterable döndürür. Örneğin:
Python:
def is_even(x):
    return x % 2 == 0

numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(is_even, numbers))
print(even_numbers) # [2, 4]

reduce: reduce, argüman olarak bir fonksiyon ve bir yinelenebilir alır ve fonksiyon kullanılarak yinelenebilirin tek bir değere indirgenmesinin sonucu olan tek bir değer döndürür. Örneğin:

Python:
from functools import reduce

def add(x, y):
    return x + y

numbers = [1, 2, 3, 4, 5]
sum_of_numbers = reduce(add, numbers)
print(sum_of_numbers) # 15

Yüksek Dereceli Fonksiyonların Avantajları

Yüksek dereceli fonksiyonlar, programlamada geleneksel fonksiyonlara göre çeşitli avantajlara sahiptir. Başlıca avantajlarından biri, daha soyut, esnek ve yeniden kullanılabilir kod yazmanıza olanak vermeleridir. Yüksek dereceli fonksiyonlar ayrıca karmaşık sorunları daha küçük, daha yönetilebilir parçalara ayırmanıza yardımcı olduklarından kodunuzu test etmenizi ve hata ayıklamanızı kolaylaştırır.

Yüksek dereceli fonksiyonların bir diğer avantajı da değişmezliği, saf fonksiyonları ve birleştirilebilirliği vurgulayan bir paradigma olan fonksiyonel programlamayı desteklemeleridir. Üst düzey fonksiyonları kullanarak daha modüler, mantık yürütmesi kolay ve hatalara daha az eğilimli kodlar yazabilirsiniz.

Son olarak, üst düzey fonksiyonlar, tekrarlayan veya gereksiz kodları ortadan kaldırarak daha kısa kod yazmanıza olanak tanır. Kodunuzdaki yaygın kalıpları soyutlamak ve kodunuzu daha okunabilir ve sürdürülebilir hale getirmek için üst düzey fonksiyonları kullanabilirsiniz.
 
Geri
Üst