如何使仿函数的函数类型构造函数实例?重复实例
How to make the function type constructor instance of functor? Duplicated instance
我正在尝试做 typeclassopedia 中的练习,但我没有足够的知识来创建一个行为类似于函数的数据类型。
第一个练习说:"Implement Functor instances for Either e and ((->) e)."
我想我了解类型构造函数,但我不了解这个具体案例。
我不知道在哪里可以找到信息,我在 Google 中搜索过但失败了。
这是我的尝试,但是 GHC-base 中已经定义了 (->) r a
类型。
我如何创建一个像函数一样运行的 data X y w = ...
?
这是我未编译的代码:
instance Functor ((->) r) where
fmap f g = (.)
为已有实例编写新实例的规范方法是将其包装在 newtype
:
newtype Function a b = Function { getFunction :: a -> b }
instance Functor (Function a) where
...
我正在尝试做 typeclassopedia 中的练习,但我没有足够的知识来创建一个行为类似于函数的数据类型。
第一个练习说:"Implement Functor instances for Either e and ((->) e)."
我想我了解类型构造函数,但我不了解这个具体案例。
我不知道在哪里可以找到信息,我在 Google 中搜索过但失败了。
这是我的尝试,但是 GHC-base 中已经定义了 (->) r a
类型。
我如何创建一个像函数一样运行的 data X y w = ...
?
这是我未编译的代码:
instance Functor ((->) r) where
fmap f g = (.)
为已有实例编写新实例的规范方法是将其包装在 newtype
:
newtype Function a b = Function { getFunction :: a -> b }
instance Functor (Function a) where
...