an stdout Wenn ich dieses Programm ausführen, bekomme ich keine Ausgabe zu stdout
:Haskell io-Streams und `forever` erzeugt keine Ausgabe
import Control.Monad (forever)
import qualified System.IO.Streams as S
import System.Random (randomRIO)
main :: IO()
main = do
is <- S.makeInputStream $ forever $ (randomRIO (1, 100) :: IO Int)
os <- printStream =<< S.read is
return()
printStream :: Maybe Int -> IO()
printStream Nothing = putStrLn "Nada!"
printStream (Just a) = putStrLn $ show a
Ich habe versucht, Pufferung Einstellung mit System.IO.hSetBuffering
-LineBuffering
und NoBuffering
aber noch keine Ausgabe. Ich habe versucht cat | ~/local/bin/program | cat
aber wieder nichts in stdout.
Vielen Dank! Ich habe "für immer" als eine Art Transformation gelesen, so dass es in diesem Fall ein "IO Int" zurückgibt, von dem ich dann einen Wert ziehen kann. Ich habe diesen Aufruf in die Ausgabe-Stream-Zeile verschoben und es funktioniert wie vorgesehen! :) –
Ich habe gesagt, dass sie es ändern sollten für immer :: Monad m => m() -> m Void'! – Gurkenglas
"Sie können reden, bis Sie im Gesicht blau sind ..." – pigworker