data S = Sa Int
type PMO = StateT Int (ErrorT String IO)
cs :: S -> PMO()
cs _ = do
mem <- get -- (*)
return()
我已经突出显示了带(*)的行。我怀疑为什么可以调用get
函数。我知道get
是State
monad的函数,但我无法看到/掌握事实上是否存在这样的monad。我看到返回的类型是PMO,但它只是返回值。它与get
有什么共同之处?Haskell和调用函数。
主要是,我有一个命令式语言编程的经验,所以它让我很难理解它。
的[请问这个国家的单子代码工作?](http://stackoverflow.com/questions/31506839/how-does-this-state-monad-code-works) – duplode
('GET'工作起来可能的复制例如'fresh',除了'get'的基本功能只是'\ s - >(s,s)',而'fresh'也会修改状态。) – duplode