Описание тега state-monad

Монада, позволяющая прикреплять информацию о состоянии к вычислениям

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