yazan : Şadi Evren ŞEKER
Programlama yaklaşımlarından birisi olan fonksiyonel programlama günümüz dillerinin neredeyse tamamında kullanılmaktadır. Bu yaklaşımda matematik fonksiyonlarında olduğuna benzer bir şekilde alt programlar tanımlanmakta ve bu alt programların değişik argümanlar ile çalışması sağlanmaktadır. Bu yaklaşım basitçe:
Bir dilin fonksiyonel olması dilde fonksiyon veya prosedüre benzeri özellikler bulundurması ile sağlanır. Bu özellikleri tanımlamak gerekirse:
Yukarıdaki bu maddeleri bir kara kutu (blackbox) yaklaşımı olarak da düşünebiliriz. Yani alt programların, dış dünya ile (programın geri kalanı ile) olan tek bağlantıları almış oldukları ve geri döndürmüş oldukları argümanlardır (paramatrelerdir).
Aşağıda bir fonksiyon örneği verilmiştir: (JAVA, C , C++, C# dillerinde kabul edilir koddur):
int topla ( int a, int b){
return a + b;
}
Yukarıdaki kod incelendiğinde, a ve b, fonksiyona verilen argümanlardır (parametrelerdir). Dönüş değeri olarak tam sayı (integer) tipi kullanılmış ve bu durum return komudu ile belirtilmiştir. a+b eylemi ise bir alt programdır. Yani bu fonksiyon çağrıldığında icra edilen program parçasıdır.
Fonksiyonel programlama, yapısal programlamanın gerektirdiği bir yaklaşımdır. Buna göre fonksiyonel programlama kullanılan bütün diller yapısal programlama yaklaşımına uygundur denilebilir. Ancak tersi doğru değildir. Her ne kadar yapısal programlamanın tanımında bir alt programın varlığı zarurî olsa da bu alt program basit bir if bloğu olarak da düşünülebilir. Yani okuyucu kod blokları ile fonksiyonları karıştırmamalıdır.
Nesne yönelimli programlama yaklaşımınlarında fonksiyonel programlama kullanılmaktadır. Dolayısıyla her nesne yönelimli programlama yaklaşımı, fonksiyonel programlamayı barındırmaktadır. Nesne yönelimli programlama terminolojisinde, fonksiyonlara metod ismi verilmektedir.