考虑以下:
data A = A1 | A2 Integer
x = [A1, A2 999]
elem A1 x == True
Run Code Online (Sandbox Code Playgroud)
有没有办法进行以下测试?
elem (A2 _) x == True
Run Code Online (Sandbox Code Playgroud)
不,但你可以改用任何一个.
hasA2 :: [A] -> Bool
hasA2 = any $ \x -> case x of { A2 _ -> True ; _ -> False }
Run Code Online (Sandbox Code Playgroud)