Either的右值上的HaskellMap

imzjd6km  于 2023-11-18  发布在  其他
关注(0)|答案(1)|浏览(111)

类型Either a [b]和函数f :: (b -> c)
如何在Either a [b]类型的值上使用f来获得Either a [c]

f2uvfpb9

f2uvfpb91#

使用fmap函数就可以了。
其中一个是Functor类型类的示例,第一个类型是固定的:

data Either a b = Left a | Right b

instance Functor (Either a)
  fmap _ (Left x)  = Left x
  famp f (Right y) = Right (f y)

字符串
因此Either a的fmap类型为:

fmap :: (b -> c) -> Either a b -> Either a c


将fmap应用于Either会导致:类型a的Left数据构造函数保持不变,类型B的Right数据构造函数得到应用于类型c的函数f。

相关问题