Peki fonksiyonel programlama nedir?
Fonksiyonel programlama, nesne yönelimli programlamanın da yaptığı gibi, ilgi alanlarının ayrılmasıyla ilgilidir,
değil mi?
Her şey kodumuzu ayrı parçalar halinde paketlemekle ilgilidir, böylece her şey kodumuzun her bölümünde iyi organize
olur.
Ve her bir parça, işlevselliğe dayalı olarak anlamlı bir şekilde düzenlenmiştir.
Dolayısıyla, kaygıların ayrılması dediğimizde, her bir parçanın iyi olduğu bir şeyle ilgilenmesini kastediyoruz.
Nesne yönelimli programlama bölümümüzde, diyelim ki bir sihirbaz sınıfı ve bir Archer sınıfının
niteliklerini ve yöntemlerini bölmek için nasıl iki sınıfımız olduğunu hatırlıyoruz.
Fonksiyonel programlama da bu kaygıları ayırma fikrine sahiptir, ancak aynı zamanda veri ve fonksiyonları
da ayırırlar.
İşlevsel bir programcı dünyaya böyle bakar.
Metotları ve nitelikleri birleştirmek yerine, bunları ayırıyoruz çünkü bunlar iki ayrı şey.
Veriler var ve bu veriler etkileşime girip harekete geçiyor.
Ancak nesne yönelimli programlamada gördüğümüz gibi hem verileri hem de işlevleri bir nesne içinde tek parça olarak birleştirmeyeceğiz.
Artık neyin işlevsel olup neyin olmadığına dair doğru bir tanım yok.
Ancak genellikle fonksiyonel diller, veri ve fonksiyonlar söz konusu olduğunda basitliğe vurgu yapar,
çünkü çoğu fonksiyonel programlama paradigmasında sınıflar ve nesneler gibi bir fikrimiz yoktur.
Bunun yerine, fonksiyonlar bu veri yapısını bir nesneye ait kılmak yerine gördüğümüz listeler ve sözlükler
gibi iyi tanımlanmış veri yapıları üzerinde çalışır.
Ancak günün sonunda, işlevsel programlama paradigmasının amacı nesne yönelimli paradigma ile
aynıdır.
Bu, kodumuzu temiz ve anlaşılır, genişletilmesi kolay hale getirme fikridir.
Yani, kodumuzu büyütebilir, daha iyi ve daha iyi hale getirebilir ve başkalarının gelip kodumuzu genişletmesini sağlayabiliriz.
Bakımı daha kolay.
Kodumuzu kuru tutar, böylece kendimizi tekrar etmemiş oluruz ve kod belleğimizi verimli
tutarız çünkü her yerde bilgi depolamıyoruz.
Şimdi, fonksiyonel programlamaya geldiğimizde, çok önemli bir ayağımız var.
Nesne yönelimli programlamanın aksine, burada kapsülleme, soyutlama, kalıtım ve çok biçimlilik
gibi dört temel unsur vardır.
Fonksiyonel programlamada işleri parçalara ayırmak istiyorsanız, her şey bu saf fonksiyon kavramına
dayanır ve bu, önümüzdeki birkaç videoda keşfedeceğimiz bir şeydir.
Ancak buradaki fikir, bir programın verileri ile bir programın davranışı arasında bir ayrım olduğudur.
Şimdi saf fonksiyonlar hakkında daha fazla bilgi edinelim.
Ne demek istiyorlar?
Neymiş onlar?