मैं केस स्टेटमेंट में कई अलग-अलग रचनाकारों से मिलान करने की कोशिश कर रहा हूं। सादगी के लिए, आधे मामलों में मान लें कि हम एक ही काम करते हैं, और दूसरे छमाही में हम कुछ और करते हैं। यहां तक कि अगर मैं एक समारोह के लिए तर्क को अलग, मैं अभी भी लिखने के लिए है:केस स्टेटमेंट पैटर्न को कैसे गठबंधन करें
case x of
C1 -> foo x
C2 -> foo x
...
C10 -> bar x
C11 -> bar x
...
वहाँ मामले बयान सी में switch
अधिक जैसे बयानों से व्यवहार करते हैं बनाने के लिए कुछ रास्ता नहीं है (fallthrough साथ यानी), या तो यह है कि मैं यह कर सकते हैं
case x of
C1, C2, C3 -> foo x
C10, C11, C12 -> bar x
या शायद एक और तरीका यह साफ करने के लिए: एक ही बार में कई पैटर्न में से एक है, जैसे पर मैच?
मैंने 'foo' और 'bar' के लिए तर्क दिया है क्योंकि यह मेरा उपयोग मामला है। यह एक सामान्य विभाजन (जैसे 'सी 1 -> सी 1, सी 2 -> सी 1, सी 3 -> सी 1') में समान रचनाकारों को मर्ज करने के लिए एक अलग विभाजन समारोह का उपयोग करने के बदसूरत लेकिन सही उत्तर को रोकता है, और फिर केवल' सी 1' से मेल खाता है) । – crockeea