Bu soru (ve cevaplar) için gerçekten önemli olan bir şey şudur: Cehennem fonksiyonel programlama ve bunun en önemli özellikleri nelerdir. Görüşümü vermeye çalışacağım:
Fonksiyonel programlama, beyaz tahtaya matematik yazmak gibidir. Bir beyaz tahtaya denklemler yazdığınızda, bir yürütme emri düşünmezsiniz. Mutasyon yoktur (tipik olarak). Ertesi gün geri dönüp ona bakmazsınız ve hesaplamaları tekrar yaptığınızda farklı bir sonuç elde edersiniz (ya da taze kahveniz varsa :)). Temel olarak, tahtada olan şey orada ve bir şeyler yazmaya başladığınızda cevap zaten oradaydı, henüz ne olduğunu henüz anlamadınız.
Fonksiyonel programlama buna çok benzer; bir şeyleri değiştirmezsiniz, sadece denklemi değerlendirirsiniz (veya bu durumda, "program") ve cevabın ne olduğunu anlarsınız. Program hala orada, değiştirilmemiş. Verilerle aynı.
Fonksiyonel programlamanın en önemli özellikleri olarak aşağıdakileri sıralarım: a) referans şeffaflığı - aynı ifadeyi başka bir zaman ve yerde değerlendirirseniz, ancak aynı değişken değerlerle, yine de aynı anlama gelir. b) yan etki yok - beyaz tahtaya ne kadar süre bakarsanız bakın, başka bir adamın başka bir beyaz tahtaya baktığı denklem yanlışlıkla değişmez. c) fonksiyonlar da değerlerdir. diğer değişkenlerle veya bu değişkenlere iletilebilir. d) fonksiyon kompozisyonu, h = g · f yapabilir ve böylece g (f (..)) çağrısına eşdeğer olan yeni bir fonksiyon h (..) tanımlayabilirsiniz.
Bu liste benim öncelikli sıralamamdadır, bu nedenle referans şeffaflığı en önemlisidir, ardından yan etki yoktur.
Şimdi, python üzerinden giderseniz ve dil ve kütüphanelerin bu yönleri ne kadar iyi desteklediğini ve garanti ettiğini kontrol ederseniz - o zaman kendi sorunuza cevap verme yolundasınız.