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
那你怎么定义z
和w
?
我想编写一个使用 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
那你怎么定义z
和w
?