Indent then
und else
Zeilen eine Ebene mehr. Die Dinge können sich jedoch ändern Conditionals und do
-notation .
Dies wird im Abschnitt " if
-within do
" des Wikibooks-Artikels auf Haskell Eindruck.
Das Problem ist, dass die Zeilen do
und then
für else
-desugarer wie neue Anweisungen aussehen:
Durch das Einrücken der Zeilen then
und else
wird das Problem gelöst.
UPDATE: Da dies mit beginner
markiert ist, werde ich auch bemerken, dass etwas wie das Folgende in Haskell generell als idiomatischer angesehen wird:
Dies funktioniert genauso wie Ihr foo
, vermeidet aber den do
Zucker und verwendet den Mustervergleich anstelle von head
und tail
und die if-then-else
Kontrollstruktur. Informell sagt die >>=
hier: "Nimm die Ausgabe von bar...
aus ihrem IO
wrapper und führe sie durch checkZero
, gib das Ergebnis zurück".
Tags und Links haskell functional-programming indentation