Ich erwarte den folgenden Code, um "15" in eine Ganzzahl zu konvertieren und das Ergebnis zu drucken, aber es wird ein Fehler ausgegeben.
main = print $ read "15" :: Integer
Couldn't match expected type `Integer' with actual type `IO()'
Aber nur mit main = print (read "15" :: Integer)
läuft gut. Ich hatte den Eindruck, dass $ den Rest der Zeile in Klammern effektiv umschließt. Warum funktioniert $ in diesem Fall nicht?
Kurz und knapp (aber nicht ganz korrekt) hat '::' eine noch niedrigere Priorität als '$'. –
Es _is_ Syntax Zucker in Haskell. Ansonsten würde es nicht mit rank-N-typisierten Argumenten funktionieren. Es ist eine Funktion in PureScript. –