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