我发现自己需要的数据结构可能包含一个A,也许是一个B,而且肯定是其中之一.如果我要破解这个东西的一般数据类型,它可能看起来像:
data OneOrBoth a b = A a | B b | AB a b
maybeA :: OneOrBoth a b -> Maybe a
maybeB :: OneOrBoth a b -> Maybe b
eitherL :: OneOrBoth a b -> Either a b -- Prefers a
eitherR :: OneOrBoth a b -> Either a b -- Prefers b
hasBoth, hasExactlyOne, hasA, hasB :: OneOrBoth a b -> Bool
Run Code Online (Sandbox Code Playgroud)
这个数据结构有名字吗?是否有规范的方法来处理Haskell中的一个或两个结构?
haskell ×1