在Haskell中,有没有办法在带有参数的构造函数上做"elem"?

me2*_*me2 3 haskell

考虑以下:

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)

Die*_*Epp 8

不,但你可以改用任何一个.

hasA2 :: [A] -> Bool
hasA2 = any $ \x -> case x of { A2 _ -> True ; _ -> False }
Run Code Online (Sandbox Code Playgroud)