此Functor组合器有名称吗?

问题描述 投票:0回答:1

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

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或类别理论术语中是否有此组合器的适当名称,以便我可以向该库的未来用户预测这样做的作用,甚至使用现有的代码代替。

此组合器已经有名称了吗?

haskell functor
1个回答
1
投票

这是functor product。从链接:

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)
© www.soinside.com 2019 - 2024. All rights reserved.