我试图匹配case语句中的许多不同构造函数。为了简单起见,在一半情况下我们做同样的事情,另一半我们做其他事情。即使我分解出的逻辑给另一个函数,我还是要这样写:如何组合case语句模式
case x of
C1 -> foo x
C2 -> foo x
...
C10 -> bar x
C11 -> bar x
...
有一些方法,使case语句的行为用C更像switch
语句(即下通),或让我可以一次匹配多种图案之一,如:
case x of
C1, C2, C3 -> foo x
C10, C11, C12 -> bar x
或者也许另一种方法来清理呢?
我为'foo'和'bar'制作了'x'参数,因为这是我的用例。它还可以防止使用单独的分区函数将等价构造函数合并为一个常见情况的丑陋但正确答案(例如'C1 - > C1,C2 - > C1,C3 - > C1',然后只匹配'C1') 。 – crockeea 2015-03-25 02:01:15