Mapping über IO in Haskell

7

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%     
unignorant 01.07.2010, 15:49
quelle

2 Antworten

22

Der Standardweg ist über:

%Vor%

was in der Reihenfolge implementiert wird:

%Vor%     
Don Stewart 01.07.2010 15:53
quelle
9

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_ .

    
Cristiano Paris 01.07.2010 16:56
quelle

Tags und Links