In Haskell können Sie sagen
%Vor%und das wird nicht kompiliert:
%Vor%Aber wenn ich explizites Layout verwende, kompiliert dies nicht:
%Vor%aber das funktioniert:
%Vor%Habe ich Recht? Gibt es einen Ort, an dem ich mehr über explizites Layout lesen und Notation machen und lassen kann? Abschnitt 3.14 des Haskell 98-Berichts scheint mir zu empfehlen, dass mein drittes Beispiel funktionieren sollte, wie es sagt, ich kann schreiben
%Vor%und es übersetzt sich in
%Vor%Die normative Antwort auf Ihre Frage finden Sie in der Beschreibung des Haskell-Berichts zur Layout-Regel .
Kurz gesagt, müssen Sie ein Semikolon zwischen Ihrem let-Block und der nächsten Anweisung des do-Blocks platzieren. Dieses Semikolon muss außerhalb des Blockes liegen. Wenn Sie nicht Layout für den Let-Block verwenden, ist das einfach, sagen Sie einfach:
%Vor%Wenn Sie jedoch Layout für den let-Block verwenden, besteht die einzige Möglichkeit zum Schließen des let-Blocks darin, eine Zeile in einer Spalte vor der Spalte von x zu beginnen. Das bedeutet, dass du etwas schreiben musst:
%Vor% Oh, und für Ihr anderes Beispiel, wieder mit Layout wird ein Semikolon eingefügt vor dem in
, also entschlüsselt Ihr Code zu:
Tags und Links haskell