Gelesen bis zum Ende des Streams in haskell

7

Ich bin ziemlich neu in Haskell, und ich möchte weiterhin Zeilen von der Konsole bis zum Ende des Streams lesen und alles ausgeben, was ich in Großbuchstaben bekomme. Bis jetzt habe ich

%Vor%

Ich kann jedoch nicht herausfinden, wie die if (inp == "x") -Kondition vermieden und durch eine Ende der Stream-Bedingung ersetzt werden kann.

Kurz gesagt, ich suche nach Haskell's Äquivalent zu while (cin >> line) in C ++

    
K Mehta 17.03.2012, 23:44
quelle

4 Antworten

8

Das geht weit über das hinaus, was Sie wirklich verlangen, aber ich benutze dieses Muster sehr oft: interact :

%Vor%

Ihre Funktion myFun wird für jede Zeile der Standardeingabe ausgeführt und das Ergebnis wird an die Standardausgabe gesendet.

    
Daniel Lyons 18.03.2012, 01:32
quelle
15

Verwenden Sie isEOF von System.IO.

%Vor%     
dave4420 17.03.2012 23:58
quelle
4

Sie könnten sich auch einfach auf faule IO verlassen.

%Vor%     
Carl 18.03.2012 01:18
quelle
1

Eine andere Option ist die Verwendung von when , dessen Dokumentation gefunden werden kann hier :

%Vor%

Ansonsten ist die Antwort identisch mit derjenigen von @dave4420 .

    
dimid 04.11.2016 14:24
quelle

Tags und Links