[Перевод] Функторы, аппликативные функторы и монады в картинках

Вот некое простое значение: 4558868cef65f4b28e06fb33e8dea6e1.png И мы знаем, как к нему можно применить функцию: 56cb1dfcfe93c695abe91f967efa46b4.png Элементарно. Так что теперь усложним задание — пусть наше значение имеет контекст. Пока что вы можете думать о контексте просто как о ящике, куда можно положить значение: 3c04cc19b198537e5334459b79d915c1.png Теперь, когда вы примените функцию к этому значению, результаты вы будете получать разные — в зависимости от контекста. Это основная идея, на которой базируются функторы, аппликативные функторы, монады, стрелки и т.п. Тип данных Maybe определяет два связанных контекста: be01822de6f660845c952b2b4fa7edb6.pngdata Maybe a = Nothing | Just a Позже мы увидим разницу в поведении функции для Just a против Nothing. Но сначала поговорим о функторах! Читать дальше →

© Habrahabr.ru