作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
b) ->-6ren">
给定以下代数类型:
ghci> data Foo a = Foo a
ghci> let f = Foo "foo"
fmap
将函数应用为
(a -> b) -> Foo a -> Foo b
.
ghci> fmap (++ "bar") f
<interactive>:78:1:
No instance for (Functor Foo) arising from a use of ‘fmap’
In the expression: fmap (++ "bar") f
In an equation for ‘it’: it = fmap (++ "bar") f
Functor
Foo
的实例, 我不能使用
fmap
.
Functor
免费实例?我对 Haskell 的编译器的了解为零,但知道
fmap
可能已经足够聪明了。在
Foo a
只需申请
(a -> b)
至
Foo
的
a
?
最佳答案
如果你做了咒语,在 ghci 中工作
Prelude> :set -XDeriveFunctor
Prelude> data Foo a = Foo a deriving (Show, Functor)
Show
仅用于打印输出,如下所示)然后您将能够执行以下操作
Prelude> fmap (++"bar") (Foo "foo")
Foo "foobar"
{-# LANGUAGE DeriveFunctor #-}
module
之前宣言。至少对于更直接的
Functor
来说是有好处的实例,但您可以将其欺骗为假阴性。
Prelude> data Boo a = Boo (Either a Bool) deriving Functor
<interactive>:9:43:
Can't make a derived instance of ‘Functor Boo’:
Constructor ‘Boo’ must use the type variable only as the
last argument of a data type
In the data declaration for ‘Boo’
data Goo a = Goo (Either Bool a) deriving Functor
data Woo a = Woo (a, Bool) deriving Functor
关于haskell - 自动仿函数实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28395214/
我是一名优秀的程序员,十分优秀!