我不常使用Haskell,但我理解Monad的概念。我被弄糊涂了,然而,
虽然Haskell用返回函数和绑定函数来定义monad,但是也可以用return和另外两个操作join和fmap来定义monad。这个公式更符合范畴理论中单一词的最初定义。fmap操作(类型为(t → u) → M t → M u )在两个类型之间接受一个函数<
在研究了Haskell中的monad之后,我想知道我是否可以自己定义一个monad,而不需要使用已经定义的类型。monad可以由bind运算符(>>=)和函数return定义,但也可以用return和join来定义,因为最后一个函数可以用bind运算符:join m = m >>= id来表示。因此,可以(从技术上)用return和
在Haskell中,monads是根据函数返回和绑定来定义的,其中返回类型为a -> m a,而bind具有m a -> (a -> m b) -> m b类型。在此之前已经指出过,其中join是一个具有m (m a) -> m a类型的函数。绑定可以用联接来定义,但反向可能吗?可以用绑定来定义联接吗?如果没有join,我不知道如果我以某种方式获得了一个“两次包装”的一元值,m (m a) --可以说,函子或mon