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.
Söz Dizimi
Örnek
Bu örnekte, topla adında bir lambda fonksiyonu tanımlanmış ve iki sayıyı toplama işlemi gerçekleştirilmiştir.
Örnek
Örnek
Örnek
Örnek
Örnek
Generator expressions, liste oluşturmaktan daha hafif bir alternatiftir, çünkü sonuçları ihtiyaca göre üretir, tüm sonuçları bellekte saklamaz.
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
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
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