EMZETT.
Giriş yap

Monadlar basitçe

Kısaca: Monad, “ek davranış” taşıyan hesaplamaları (sonuçsuzluk, hata, liste, yan etki) temiz biçimde art arda zincirlemek için bir desendir.

Biraz daha ayrıntılı: Bir değeri bir kaba sarar ve bir işlevi içeriğe uygulayan, bu sırada ek davranışı kendisi halleden bir işlem (bind, flatMap) sunar.

Ayrıntılı

  • Option/Maybe: Bir değer ya da “hiçbir şey”. flatMap sonraki işlevi yalnızca değer varsa çalıştırır. Bu, iç içe null denetimlerini ortadan kaldırır.
  • Result/Either: Başarı ya da hata. İlk hata zinciri keser.
  • Liste: flatMap her öğeye bir işlev uygular ve sonuçları düzleştirir.
  • Promise/Future: Daha sonra gelen bir değer. then, bind’e karşılık gelir.
  • Yasalar: Sol birim, sağ birim ve birleşme özelliği, zincirlerin öngörülebilir biçimde yeniden düzenlenebilmesini sağlar.
  • Anımsatıcı: Monad, her adımın girdisini zaten “paketten çıkarılmış” aldığı bir montaj hattıdır.

Ayrıca bak: Currying