Монады в Java

В языках программирования монады представляют собой абстракцию, которая позволяет выстраивать цепочки последовательных вычислений.

Монады больше связаны с функциональным программированием. Представляйте их как некий контейнер, который принимает текущее состояние и функцию, которая принимает в качестве аргумента текущее состояние и возвращает новое.

Да, сейчас функциональное программирование снова в моде. Именно поэтому во всех языках появляются подобные конструкции. А ведь первоначально Java создавалась совершенно другой. Она планировалась как строгий ООП язык, и никаких монад там совсем не планировалось…

Предыдущими абзацами я, скорее всего, только запутал вас. Давайте обратим наш взор на примеры монад в Java.

java.util.Optional

В Java Optional — это самая что ни на есть монада. Посмотрите на пример кода:

Обратите внимание на выстроенную цепочку вычислений. Монады — это то, что вы здесь видите.

java.util.stream

Stream API — это тоже пример монад. Более подробно я их уже расписывал в статье про коллекции. Здесь же просто приведу пример использования:

Обратите внимание на цепочку вычислений, которая очень похожа на выстраивание цепочки в случае с Optional.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *