我想在Haskell中创建我自己的单曲,让Haskell像其他在monad中构建的一样对待它。例如,下面的代码用于创建一个monad,它在每次调用全局状态变量时更新某个全局状态变量,以及一个用于计算调用quot函数次数的评估器:type M a= State -> (a, State)
-- define the return and bind operators for this mo
在研究了Haskell中的monad之后,我想知道我是否可以自己定义一个monad,而不需要使用已经定义的类型。monad可以由bind运算符(>>=)和函数return定义,但也可以用return和join来定义,因为最后一个函数可以用bind运算符:join m = m >>= id来表示。因此,可以(从技术上)用return和join来定义monad,而不是其他任何东西