state操作:import Control.Applicative (Applicative)import Control.Monad.State (MonadState, evalStateT, modify, StateT, gets)
newtype St a = St { unSt :: StateT State IO a } deriv
谁能告诉我map/fmap (由函子定义)和flatMap/bind/lift (由Monad定义)在中的区别吗?前者接受一个函数并返回Monad,后者接受一个函数并返回一个函数,然后该函数也返回Monad。问题是,为什么后者需要采取额外的步骤,以返回Monad?// Monads apply a function that returns a wrapped values to a wrapped value
// and then