Прочитав несколько учебников по монахам штата Haskell, я захотел попробовать их сам. В учебниках, которые я прочитал, утверждается, что Control.Monad.State предоставляет следующее определение:
newtype State s a = State { runState :: s -> (a,s) }
Однако мне кажется, что мне трудно найти конструктор данных State
:
Prelude> import Control.Monad.State
Prelude Control.Monad.State> :t State
<interactive>:1:1:
Not in scope: data constructor `State'
Perhaps you meant `StateT' (imported from Control.Monad.State)
Я также пробовал поиск в Google State
, но не нашел никаких конструкторов данных с ожидаемым типом.
Где появился конструктор State
? Он когда-нибудь существовал? Или я просто смотрю не туда? По сути, я хотел бы знать, что мне нужно сделать, чтобы создать государственную монаду.