JS ILE FONKSIYONEL PROGRAMLAMA

Yazılımda Fonksiyonel Düşünmek -(Function Accepting Functions)

Onur Dayıbaşı
Frontend Development With JS
2 min readFeb 8, 2020

--

Bu yazıyı daha önceden yazmış olduğum JS ile Fonksiyonel Programlama yazısının bir devamı olarak yazıyorum. Bir çok kavramı tek bir yazıda ele almanın yaratacağı karmaşıklıktan kaçmak için bu şekilde bir yönteme başvurdum.

Currying fonksiyonların nasıl kullanıldığını anlatmıştık. Aşağıdaki fonksiyonların her biri birbirinin aynısı ve soldan → sağa doğru işletilerek ilerletilebilir herhalde.

sum(a,b) yerine const sum=a=>b=>a+b;
multiply(a,b) const multiply=a=>b=>a*b;
ve diğer subraction ve divide vb fonksiyonları currying fonksiyon olarak yazabiliriz.

Yukarıdaki sistemi biraz daha ileriye götürüp toplama, çıkarma ve çarpma ve bölme işlemlerinide calc fonksiyonu ile soyutlayabiliriz. İşlem yapmasını istediğimiz fonksiyonu parametre olarak geçirip bunuda dinamik hale getirebiliriz.

const add=a=>b=>a+b;
const sub=a=>b=>b-a;
const multi=a=>b=>a*b;
const div=a=>b=>b/a;
const calc=fn=>a=>b=>fn(a)(b)var addTwo = calc(add)(1);
var multiTwo= calc(multi)(2);
var divTwo = calc(div)(2);
var subTwo = calc(sub)(2);
console.log(addTwo(10));
console.log(multiTwo(10));
console.log(divTwo(10));
console.log(subTwo(10));

Not: Burda bir problem fonksiyon parametre sayısını calc fonksiyonu biliyor yani tüm fonksiyonlarımız en sonunda 2 parametre alıyor. Peki argüman sayısı değişken fonksiyonları desteklemek için ne yapmalıyız ? Örneğin add(a,b,c,d,e …) için ne yapmalıyız ? Bir sonraki konuda Partial Applications konusunda bunun üzerinde duracağım

Referanslar

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--