
Мы как программисты иногда попадаем в "программистский ад", место где наши обычные абстракции не справляются с решением ряда повторяющихся проблем.
В данной статье будут рассмотрены такие проблемы, синтаксические конструкции используемые для их решения и наконец как эти проблемы могут быть решены единообразно с помощью монад.
Ад проверки на null
Данная проблема возникает когда несколько частичных функций (функции которые могут не вернуть значение) нужно выполнить последовательно.
Такие функции обычно приводят в глубоко вложенному и сложно читаемому коду с чрезмерным количеством синтаксического шума.
var a = getData();
if (a != null) {
var b = getMoreData(a);
if (b != null) {
var c = getMoreData(b);
if (c != null) {
var d = getEvenMoreData(a, c)
if (d != null) {
print(d);
}
}
}
}


![Pygest #9. Релизы, статьи, интересные проекты из мира Python [8 мая 2017 — 22 мая 2017] - 1 image](https://www.pvsm.ru/images/2017/05/22/Pygest-9-relizy-stati-interesnye-proekty-iz-mira-Python-8-maya-2017-22-maya-2017.png)
![[Санкт-Петербург] Андрей Ершов — CRDT. Бесконфликтная синхронизация данных - 1 [Санкт-Петербург] Андрей Ершов — CRDT. Бесконфликтная синхронизация данных - 1](https://www.pvsm.ru/images/2017/05/22/sankt-peterburg-andrei-ershov-CRDT-beskonfliktnaya-sinhronizaciya-dannyh.png)


