Verwendung von regexp in haskell-Funktionswächtern

8

Ich möchte eine Haskell-Funktion schreiben, deren Verhalten von einem Regex-Muster abhängt, das einem der Argumente entspricht. In einer Sprache wie C / Python / Perl würde ich definitiv nur ein großes if / else-Konstrukt verwenden, aber ich habe diese Option nicht wirklich. Was ist der idiomatische Haskell-Weg, damit umzugehen?

Ich habe Wächter erwogen, aber sie funktionieren nicht: No instance for (Data.String.IsString source0) :

%Vor%

Der Mustervergleich, der in Fallkonstrukten verwendet wird, wäre perfekt, wenn er Regex behandelt.

%Vor%     
Quyk 01.08.2015, 18:40
quelle

1 Antwort

12

Ihr erstes Beispiel funktioniert für mich:

%Vor%

Ich glaube, Ihr IsString -Fehler ist auf die überladene Zeichenfolgenliterale-Erweiterung zurückzuführen. Versuchen Sie, dies zu deaktivieren, oder versuchen Sie stattdessen explizit String strings zu verwenden:

%Vor%

Zu laut? Sie können die Gruft zu den letzten Zeilen schieben.

%Vor%

Benötigen Sie eine Untergruppenübereinstimmung?

%Vor%

Am function3 "patttern1" , Variable x wird an "tt" gebunden. Bei function3 "xyz" wird der Test fehlschlagen und der nächste Zweig wird ausprobiert.

    
chi 01.08.2015, 18:51
quelle

Tags und Links