Um in Haskell die literale Zeichenfolge "\"
darzustellen, würde man normalerweise schreiben:
Gibt es jedoch eine Möglichkeit, die Zeichenfolge zu umgehen, sodass ein einzelner Backslash selbst geschrieben werden kann, ohne dass eine Escapezeichenfolge erforderlich ist? Zum Beispiel kann ich genau das in C # tun, indem ich @
an die Zeichenkette anwende:
Hat Haskell ein Äquivalent?
Nein, siehe Abschnitt 2.6 der Haskell Lexical Structure .
Haskell hat keine rohen Saiten, Heredocs oder Tripel Saiten. Es tut uns leid. Die einzige Faszination, die Sie bekommen, ist diese:
%Vor%Der Leerraum zwischen Zeilenenden und -beginnenden Schrägstrichen wird ignoriert. Dies ist beispielsweise dann nützlich, wenn Sie Inline-HTML ausgeben möchten, das in der Haskell-Quelle korrekt eingerückt ist, aber in der Ausgabe nicht zu stark eingerückt ist. (Nicht dass ich befürworte, auf diese Weise komplizierte HTML-Ausgaben zu machen.)
Es gibt eine schöne Bibliothek (raw-strings-qq ) , die Sie QuasiQouter
gibt %Vor%Dank des QuasiQuoting-Mechanismus ist es möglich, Standard-Haskell zu verwenden:
So, kein \\ Problem mehr. Das einzige Problem ist, dass Sie jetzt vorsichtig sein müssen, wenn Sie die Quasiquoting-Sequenz beenden, und dass Sie möglicherweise entkommen müssen. Im Zusammenhang mit regulären Ausdrücken habe ich es selbst unter Verwendung von \ u7c] oder ähnlichem verlassen, ich erinnere mich nicht genau. Also habe ich den Unicode- oder ASCII-Code für das Pipe-Zeichen verwendet. Aber diese |] Sequenz kommt nicht oft vor.
Und wenn Sie daran interessiert sind, reguläre Ausdrücke einzugeben, bin ich ein großer Fan der Rex-Bibliothek:
Das verwendet nicht nur Quasiquoting für einen schönen Regex-Eintrag (keine doppelten Backslashes), es verwendet auch Perl-ähnliche reguläre Ausdrücke und nicht die standardmäßigen regulären POSIX-Ausdrücke und erlaubt Ihnen sogar, reguläre Ausdrücke als Muster zu verwenden, die Ihren Methodenparametern entsprechen. Das ist Genie.