Gibt es eine traditionelle Möglichkeit, eine Funktion, die IO verwendet, zuzuordnen? Insbesondere möchte ich eine Funktion zuordnen, die einen zufälligen Wert zurückgibt. Die Verwendung einer normalen Map führt zu einer Ausgabe vom Typ ([IO b]), aber um die Werte in der Liste von IO zu entpacken, brauche ich etwas vom Typ (IO [b]). Also schrieb ich ...
%Vor%... was gut funktioniert. Aber es scheint, dass es eine Lösung dafür in Haskell eingebaut geben sollte. Zum Beispiel ein Anwendungsbeispiel:
%Vor%Der Standardweg ist über:
%Vor%was in der Reihenfolge implementiert wird:
%Vor% Um Dons Antwort hinzuzufügen, werfen Sie einen Blick auf die Funktion mapM_
, die genau das tut, was mapM
tut, aber alle Ergebnisse verwirft, so dass Sie nur Nebenwirkungen erhalten.
Dies ist nützlich, wenn Sie möchten, dass Berechnungen ausgeführt werden (z. B. E / A-Berechnungen), aber nicht am Ergebnis interessiert sind (z. B. das Aufheben der Verknüpfung von Dateien).
Siehe auch forM
und forM_
.