Ну, эта тема уже обсуждалась раньше, поэтому я ссылаюсь на нее.
Предыдущий вопрос stackoverflow
Так что я уверен, что он работал в то время,но время изменилось:)
Будучи новичком в Haskell, делая маленькие шаги, я бы сделал еще один шаг вперед.Я пробовал разные решения с различными проблемами.
предлагаемое решение
instance Show a => Show (State a) where
show (State f) = show [show i ++ " => " ++ show (f i) | i <- [0..3]]
отчеты компилятора.
myfuncs.hs:31:11: error:
Not in scope: data constructor ‘State’
Perhaps you meant one of these:
‘StateT’ (imported from Control.Monad.State),
variable ‘state’ (imported from Control.Monad.State)
|
31 | show (State f) = show [show i ++ " => " ++ show (f i) | i <- [0..3]]
|
Буду признателен за объяснение State State и StateT такжеПонимание того, как: информация Состояние должно интерпретироваться.
type State s = StateT s Data.Functor.Identity.Identity :: * -> *
-- Defined in ‘Control.Monad.Trans.State.Lazy’
тот же вопрос касается информации: состояние
class Monad m => MonadState s (m :: * -> *) | m -> s where
...
state :: (s -> (a, s)) -> m a
-- Defined in ‘Control.Monad.State.Class’
Не уверен, что я пойму ответ, однако вся помощь приветствуется.