Ana Sayfa

Functor, Applicative ve Monad: Korkutucu Görünen Tanıdık Kavramlar

1 dk okuma

Fonksiyonel programlama dünyasında sıkça karşılaşılan ve geliştiriciler arasında korkutucu bir üne sahip olan Functor, Applicative ve Monad terimleri, aslında günlük kodlama pratiklerimizde kullandığımız tanıdık desenlerdir. Makale, bu kavramların 'sarmalanmış' değerlerle çalışmak için kullanılan basit kalıplar olduğunu vurgulayarak, onları çevreleyen mistik havayı dağıtmayı hedefliyor. Yazara göre, bu üçlü, NullPointerException kadar korkutucu olmasa da, birçok geliştiricinin gözünü korkutmaya yetiyor. Ancak Elm gibi fonksiyonel dilleri kullananlar veya JavaScript'te Promise zincirleme gibi işlemler yapanlar, aslında bu desenleri bilmeden de kullanıyorlar.

Temel olarak, bu kavramlar değerlerin bir 'kapsayıcı' içinde olduğu durumlarla ilgilidir. Örneğin, Elm'deki Maybe tipi, bir değer içerebilen veya boş olabilen bir kapsayıcıdır. Functor, bir kapsayıcı içindeki değere, kapsayıcıyı açmadan bir fonksiyon uygulamak anlamına gelir. Elm'de Maybe.map, List.map veya JavaScript'te [1,2,3].map gibi işlemler, Functor prensibine dayanır. Bu, bir değeri dönüştürmenin ve sonucun yine aynı türde bir kapsayıcıda kalmasını sağlamanın zarif bir yoludur.

Makale, Functor'ın ne olduğunu detaylıca açıklarken, Applicative ve Monad'ın da benzer şekilde sarmalanmış değerlerle çalışmanın farklı yolları olduğunu ima eder. Amaç, bu terimlerin arkasındaki matematiksel soyutlamalara takılmak yerine, pratik uygulamalarını ve neden var olduklarını anlamaktır. Böylece, geliştiriciler bu 'korkutucu' kelimelerin aslında ne kadar erişilebilir ve faydalı olduğunu görebilirler.

İçgörü

Bu kavramların aslında günlük programlama pratiklerinde sıkça kullanıldığını ve sanıldığı kadar karmaşık olmadığını anlamak, geliştiricilerin fonksiyonel programlamaya bakış açısını değiştirebilir.

Kaynak