首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个Functor combinator有名字吗?

这个Functor combinator有名字吗?
EN

Stack Overflow用户
提问于 2020-02-22 22:50:25
回答 1查看 106关注 0票数 3

我有一个组合器C和一个Functor instance,定义如下:

代码语言:javascript
复制
data C f1 f2 a = C (f1 a) (f2 a)

instance
  ( Functor f1
  , Functor f2
  )
    => Functor (C f1 f2)
  where
    fmap g (C a b) = C (fmap g a) (fmap g b)

简单地说,我可以将C描述为fmap实例所分布的产品类型。

我在这里的实现对于我在这里的目的来说是很好的,但是我想知道在haskell或者类别理论的行话中这个组合子是否有一个合适的名称,这样我就可以向这个库的未来用户投射它的作用,或者甚至使用现有的代码来代替。

这个组合子已经有名字了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-22 22:54:04

它是一个functor product,在base库的Data.Functor.Product模块中定义。从链接:

代码语言:javascript
复制
data Product f g a = Pair (f a) (g a)

instance (Functor f, Functor g) => Functor (Product f g) where
    fmap f (Pair x y) = Pair (fmap f x) (fmap f y)

(准确地说,两者都只是高级类型的产品,不一定是函数式的,但如果fg都是函数式的,那么C f gProduct f g只是函数式的。)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60353359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档