Eğitim Python'da Fonksiyonel Programlama

Fonksiyonel programlama, bir programlama paradigmasıdır ve fonksiyonlar üzerinden işlem yapmayı teşvik eder. Bu yaklaşım, yan etkisiz ve saf fonksiyonlar kullanarak, kodun daha öngörülebilir ve test edilebilir olmasını sağlar.

Lambda Fonksiyonları

Lambda fonksiyonları, tek satırlık, anonim (ismi olmayan) fonksiyonlardır. Küçük ve basit işlemleri fonksiyon olarak tanımlamak için kullanılırlar. Lambda fonksiyonları, ad hoc (geçici) fonksiyonlar oluşturmak için idealdir.
Söz Dizimi
Python:
lambda arg1, arg2, ... : ifade
Örnek
Python:
# İki sayının toplamını alan bir lambda fonksiyonu
topla = lambda x, y: x + y

# Kullanım
sonuc = topla(10, 5)
print(sonuc)  # 15
Bu örnekte, topla adında bir lambda fonksiyonu tanımlanmış ve iki sayıyı toplama işlemi gerçekleştirilmiştir.

Map, Filter, Reduce

Python'da map, filter, ve reduce fonksiyonları, fonksiyonel programlamanın temel taşlarıdır. Bunlar, yüksek seviyede veri işleme ve dönüşüm için kullanılır.

map

map fonksiyonu, verilen bir fonksiyonu, bir iterasyon yapılabilen nesnenin her bir elemanına uygular ve sonuçları bir liste olarak döndürür.
Örnek
Python:
# Bir listenin her elemanını ikiyle çarpan fonksiyon
sayilar = [1, 2, 3, 4, 5]
ikiyle_carp = list(map(lambda x: x * 2, sayilar))

print(ikiyle_carp)  # [2, 4, 6, 8, 10]

filter

filter fonksiyonu, bir fonksiyona ve bir iterasyon yapılabilen nesneye ihtiyaç duyar. Fonksiyonun True döndürdüğü elemanlar, sonuç listesine eklenir.
Örnek
Python:
# Sadece çift sayıları filtreleyen fonksiyon
sayilar = [1, 2, 3, 4, 5, 6, 7, 8]
cift_sayilar = list(filter(lambda x: x % 2 == 0, sayilar))

print(cift_sayilar)  # [2, 4, 6, 8]

reduce

reduce, bir fonksiyonu kullanarak, bir iterasyon yapılabilen nesnedeki tüm elemanları birleştirir. Bu fonksiyon functools modülünden alınır.
Örnek
Python:
from functools import reduce

# Bir listenin tüm elemanlarını toplamak için reduce
sayilar = [1, 2, 3, 4, 5]
toplam = reduce(lambda x, y: x + y, sayilar)

print(toplam)  # 15

List Comprehensions ve Generator Expressions

List Comprehensions

List comprehensions, Python’da bir diziyi hızlıca oluşturmak için kullanılır. Daha kısa ve okunabilir bir kod yazmanıza olanak tanır.
Örnek
Python:
# 1'den 10'a kadar olan sayılarla bir liste oluşturma
sayilar = [x for x in range(1, 11)]

# Sadece çift sayıları içeren bir liste oluşturma
cift_sayilar = [x for x in sayilar if x % 2 == 0]

print(cift_sayilar)  # [2, 4, 6, 8, 10]

Generator Expressions

Generator expressions, list comprehensions’a benzer, ancak liste yerine bir jeneratör objesi döner. Bu, büyük veri setlerini işlerken hafıza kullanımını optimize etmek için idealdir.
Örnek
Python:
# 1'den 10'a kadar sayılarla bir jeneratör oluşturma
sayilar_generator = (x for x in range(1, 11))

# Jeneratörün elemanlarını döndürme
for sayi in sayilar_generator:
    print(sayi, end=" ")  # 1 2 3 4 5 6 7 8 9 10
Generator expressions, liste oluşturmaktan daha hafif bir alternatiftir, çünkü sonuçları ihtiyaca göre üretir, tüm sonuçları bellekte saklamaz.

Özet

Bu bölümde, Python'da fonksiyonel programlamanın temel bileşenlerini inceledik. Lambda fonksiyonları, map, filter, ve reduce gibi fonksiyonlarla, list comprehensions ve generator expressions gibi yapılarla fonksiyonel programlamanın temellerine hakim oldun. Bu kavramlar, daha etkili ve verimli Python kodları yazmana yardımcı olacaktır.
 
Geri
Üst