В Haskell я часто делаю что-то вроде этого:
f $ \x -> case x of
A a1 a2 -> ...
B b1 b2 -> ...
C c1 c2 -> ...
Но я не хочу x
, я просто хочу его деконструировать.
В стандартном ML я могу сделать что-то вроде этого:
f (fn A(a1,a2) => ...
| B(b1,b2) => ...
| C(c1,c2) => ...)
Есть ли способ сделать это в Haskell или с любыми расширениями GHC?