如何使functor的函数类型构造函数实例?重复的实例

时间:2015-04-20 12:08:10

标签: haskell functional-programming instance typeclass functor

我正在尝试在typeclassopedia中进行练习,但是我没有足够的知识来创建一个像函数一样的数据类型。

第一个练习说:“为e和(( - >)e)实现Functor实例。”

我想我理解类型构造函数,但我不明白这个具体的情况。

我不知道在哪里可以找到信息,我在谷歌搜索但失败了。

这是我的尝试,但(->) r a类型已经在GHC-base中定义。

如何创建一个行为类似函数的data X y w = ...

这是我的编译代码:

instance Functor ((->) r) where
  fmap f g = (.)

1 个答案:

答案 0 :(得分:9)

为已有的实例编写新实例的规范方法是将其包装在newtype中:

newtype Function a b = Function { getFunction :: a -> b }

instance Functor (Function a) where
  ...