在Haskell中有没有因为我们无法实现return
而不能成为monad的仿函数的示例?
我看过this answer并从中得到启发。
直观上来说,我们总是可以通过使用类型构造函数来实现return
。但是我一定想念一些东西。
最佳答案
这正是the Bind
typeclass所代表的:具有绑定(bind)操作但不一定返回的事物。这些类型是Bind
的实例,但不是Monad
的实例,因为它们没有return
:
(,) w
,WriterT w m
和RWST r w s m
,只要w
是Semigroup
而不是Monoid
Map k
,HashMap k
和IntMap k
V1
(注意:这与Daniel Wagner's Whoops
和pigworker's Dead
同构)