Der <-
"extrahiert" einen Wert aus einem monadischen Container. IO
ist eine Monade und kann daher zum Extrahieren eines Werts aus einer IO
-Aktion verwendet werden. Die Syntax von Haskell besagt jedoch, dass Sie vor der Verwendung an einen Namen binden müssen. In Wirklichkeit ist <-
überhaupt kein Operator, sondern syntaktischer Zucker für den Operator >>=
(ausgesprochen "bind"). Also wenn du schreibst
Es wird in
umgewandelt %Vor% Nun stell dir vor, du hättest viel mehr Statements in main
. Vielleicht haben Sie mehrere Werte mit <-
extrahiert, und einige der Ausdrücke haben mehr als einen dieser Werte gleichzeitig verwendet. Man könnte definitiv die "entzuckerte" Version schreiben, aber es würde sehr, sehr schwierig werden. Die Do-Notation vereinfacht dies und sorgt dafür, dass der Compiler sich darum kümmert.
Tags und Links haskell