对于不是应用函子的Haskell仿函数,有什么好的例子?

时间:2014-10-08 14:48:31

标签: haskell monads functor applicative

了解Haskell中的仿函数,例如: [Integer][] Integer,我了解函数需要定义fmap(在列表示例中:fmap = map)。 如果我做得对,仿函数可以实现顺序应用程序 <*>,以便成为 applicative functor 。这就是为什么

[(1+), (2+)]

是列表实例[] Integer的完美元素。和像

这样的表达
(+) <$> [1..10] <*> [101..110]

明智。

我发现的Functor实例的示例也都是 applicative functors 。即对<*>有一个明智的定义。函子的典型例子也许,[],e,树,e - &gt;,对,(,)e,......通常都是适用的(即<*>有一个合理的定义) 。根据我的理解,他们甚至都是monad!

我发现ZipList作为不是monad(for a reason)的应用仿函数的示例。

现在有一个仿函数不是一个应用函子,而且合理吗?

0 个答案:

没有答案