Зачем State нужно значение?

Просто изучаю монаду State из этого превосходного туториала . Однако, когда я попытался объяснить это не -программисту, у них возник вопрос, который поставил меня в тупик.

Если целью состояния является имитация изменяемой памяти, то почему функция, которую хранит монада состояния, имеет тип:

s -> (a, s)

и не просто:

s -> s

Другими словами, зачем нужно «промежуточное» значение? Например, не можем ли мы в тех случаях, когда нам это нужно, смоделировать это, просто определив состояние как кортеж (state, value)?

Я уверен, что что-то перепутал, любая помощь приветствуется.

12
задан Andriy Drozdyuk 20 July 2012 в 16:34
поделиться