Giriş

Modern programlama dillerinde sık kullanılan map, filter, reduce desenlerinin kökü, 1930'larda Alonzo Church'ün geliştirdiği lambda hesabına uzanır — bu, bilgisayarlardan önce var olan saf bir matematik sistemidir.

Lambda Hesabı

Lambda hesabı, hesaplamayı fonksiyon tanımlama ve uygulama üzerinden ifade eden minimal bir sistemdir. $\lambda x. x + 1$ ifadesi, "x'i x+1'e götüren fonksiyon" anlamına gelir — modern dillerdeki x => x + 1 ile birebir aynı fikir.

TANIM

Saf Fonksiyon (Pure Function)

Aynı girdi için her zaman aynı çıktıyı üreten ve dış dünyada (değişken, dosya, ağ) hiçbir yan etki yaratmayan fonksiyon. Matematikteki $f(x)$ tanımıyla birebir örtüşür.

Saf Fonksiyonlar Neden Önemli?

Bir matematik fonksiyonu gibi davranan kod, test edilmesi ve akıl yürütülmesi çok daha kolay bir koddur — girdisini bilmek, çıktısını bilmek için yeterlidir; gizli bir durum yoktur.

KavramMatematikFonksiyonel Programlama
Dönüşüm$f: A \to B$map
Alt küme seçimi$\{x \mid P(x)\}$filter
Birleştirme$\sum$reduce

UYARI

Fonksiyonel stil her problem için en uygun çözüm değildir — bazı durumlarda (performans kritik döngüler, doğrudan durum yönetimi) klasik komut dizisi yaklaşımı daha okunaklı kalır.

Sonuç

Bir sonraki array.map() yazdığınızda, aslında 90 yıl önce kağıt üzerinde tanımlanmış bir matematiksel sistemi kullandığınızı bilmek, kod yazmayı biraz daha ilginç kılabilir.