在向某人解释什么是类型类X时,我很难找到正好是X的数据结构的好例子.
所以,我请求示例:
我认为Monad到处都有很多例子,但Monad的一个很好的例子与之前的例子有一些关系可以完成图片.
我寻找彼此相似的示例,区别仅在于属于特定类型类的重要方面.
如果有人能够设法在这个层次结构的某个地方隐藏一个Arrow的例子(它是在Applicative和Monad之间吗?),那也会很棒!
我知道有些人认为fail是个错误,我明白为什么.(似乎MonadPlus是为了取代它).但只要它存在,似乎使用部分函数fail而pure不是Just和Nothing.因为这将允许你做你现在可以做的所有事情和更多,所以像safeHead你可以给你传统的Just/ Nothing或者你可以返回[x]/ [].
从我所读到的内容MonadPlus看起来似乎比使用更好fail.但是我对此肯定不够了解,而且它也可能涉及拉入Prelude,这可能是一个好主意,但这将是一个比使用更大的变化fail.
所以我想我的问题是为什么部分函数不使用failOR MonadPlus,两者似乎都比使用具体类型更好.