Monad
“Bağlam taşıyan” hesaplamaları zincirlemeye yarayan fonksiyonel soyutlama — Optional, Result, Promise ve List, kendi dilleri öyle adlandırsın ya da adlandırmasın, birer monaddır.
M<T> türü, iki işlemi varsa monaddır: of (bir değeri bağlama yükseltir) ve flatMap/bind (T → M<U> biçimindeki bir fonksiyonu iç içe geçmeden zincirler). Bu sayede başarısız olabilen, asenkron olan ya da birden çok değer üreten işlemleri, her adımda hata yönetimi yazmadan birleştirebilirsiniz.
Ünlü biçimde kötü anlatılır (“endofunktörler kategorisinde bir monoid”). Pratikte: Promise.then ya da Rust’ın ? işlecini kullandıysanız, monad kullandınız.