给定某个数据类型的两个项t1 t2,是否有某种方法可以检查t1和t2是否以相同构造函数开始,而不在构造函数中进行穷举或模式匹配?就像如果我喜欢的类型要么是B,那么我想比较Haskell中两个项的构造函数的一般方法
checkConst (Left x) (Left y) = True
checkConst (Right x) (Left y) = False
...
等实际上不这样做,模式匹配,并在某种程度上是普遍适用于其他类型的用10层构造的顺序。有没有一个很好的方法来做到这一点?
也许你可以使用[镜头包]中的[Prisms](https://hackage.haskell.org/package/lens-4.15.4/docs/Control-Lens-Prism.html)(https: //hackage.haskell.org/package/lens-4.15.4),可能值得一试。 –