Lets sagen, dass wir diese Art Erklärung haben:Passende mehrere Daten Typkonstruktoren sofort
data D a = A a | B a | C a | D a | E a | F a
und möchte eine Funktion über sie definieren, welche die Daten Konstrukteuren in 2 Sets unterteilt. Es wäre schön, etwas in der Art zu schreiben:
g x | x `is` [A,B,C] = 1
| x `is` [D,E,F] = 2
anstatt auf jeden Konstruktor separat zu vergleichen.
Gibt es eine Möglichkeit, dies zu erreichen? Ich schaute auf uniplate, konnte aber keinen Weg finden, es zu tun.
Ich fand die gleiche Lösung. Das Problem liegt bei den String-Literalen. Es wird besser sein, wenn wir gegen '[A, B, C] 'wie in dem Beispiel, das ich gab, passen können. –
@ djv: Siehe Aktualisierung. – kennytm
Es wird besser, aber was, wenn ich möchte, dass es für Konstruktoren mit verschiedenen Zahlenfeldern funktioniert? –