好的,所以编写器monad允许你将东西写入[通常]某种容器,并在最后收回容器.在大多数实现中,"容器"实际上可以是任何幺半群.
现在,还有一个"读者"monad.这一点,你可能会认为,将提供双操作-从某种容器,一个项目在一个时间逐步阅读.实际上,这不是通常的读者monad提供的功能.(相反,它只是提供了对半全局常量的轻松访问.)
要真正写一个单子这是双重平时作家单子,我们就需要某种结构是双重的独异.
monads haskell
haskell ×1
monads ×1