Haskell - 要么只映射一个

Haskell - Either Map Only One

我想编写一个使用 Either 值的函数和两个函数。它仅应用与内部类型兼容的功能之一。完全在努力实施这个。

mapAorB :: (x -> z) -> (y -> w) -> Either x y -> Either z w

首先写出函数的所有参数

mapAorB :: (x -> z) -> (y -> w) -> Either x y -> Either z w
mapAorB xz yw eitherxy = undefined

然后判断是否有参数可以匹配上。这里只有Either可以。将参数扩展为模式案例:

mapAorB xz yw (Left x) = undefined
mapAorB xz yw (Right y) = undefined

根据函数的规范,我们知道如果我们输入 Left x 那么我们会得到 Left z,同样如果我们输入 Right y 它会 return Right w。这给出了一个额外的提示:

mapAorB xz yw (Left x) = Left z where z = undefined
mapAorB xz yw (Right y) = Right w where w = undefined

那你怎么定义zw