Tôi đang cố gắng kết hợp trên nhiều hàm tạo khác nhau trong một câu lệnh case. Để đơn giản, giả sử trong một nửa số trường hợp chúng tôi làm điều tương tự, và trong nửa còn lại, chúng tôi làm điều gì đó khác. Ngay cả khi tôi yếu tố ra logic để chức năng khác, tôi vẫn phải viết:Làm thế nào để kết hợp các mẫu câu lệnh mẫu
case x of
C1 -> foo x
C2 -> foo x
...
C10 -> bar x
C11 -> bar x
...
Có một số cách để làm cho trường hợp báo cáo hành xử như switch
báo cáo trong C (tức là với fallthrough), hoặc để tôi có thể phù hợp với một trong nhiều mẫu cùng một lúc, như:
case x of
C1, C2, C3 -> foo x
C10, C11, C12 -> bar x
Hoặc có lẽ một cách khác để làm sạch điều này?
Tôi đã tạo 'x' một đối số thành' foo' và 'bar' vì đây là trường hợp sử dụng của tôi. Nó cũng ngăn cản một câu trả lời xấu nhưng đúng khi sử dụng một hàm phân tách riêng biệt để hợp nhất các hàm tạo tương đương vào một trường hợp chung (như C1 -> C1, C2 -> C1, C3 -> C1', và sau đó chỉ khớp trên 'C1') . – crockeea