Ich habe eine Funktion wie:Mein Haskell-Programm ist zu faul
type App a = ExceptT AppError (ResourceT IO)
onEvent :: SDL.EventPayload -> App()
onEvent event = do
liftIO $ putStrLn "EVE!"
case event of
SDL.MouseMotionEvent dat -> do
liftIO $ putStrLn "HELLO"
SDL.KeyboardEvent kbe -> liftIO $ putStrLn "WORLD"
_ -> return()
Das ist ein Rückruf in meiner Anwendung verwendet wird.
Diese Funktion scheint nicht, weil keiner der putStrLn auf Konsole drucken.
Aber diese Funktion - mit der leichten Modifikation alles tut drucken zu trösten:
onEvent :: SDL.EventPayload -> App()
onEvent event = do
liftIO $ putStrLn "EVE!"
case event of
SDL.MouseMotionEvent dat -> do
liftIO $ print dat
SDL.KeyboardEvent kbe -> liftIO $ print kbe
_ -> return()
Warum wird die vollständige Bewertung von SDL.EventPayload
Ursache der umliegenden putStrLn
‚s zu arbeiten?
Wie kann ich meine Funktion Callback ein wenig zuverlässiger machen?
Sind Sie sicher, dass diese isn Ist das nicht nur ein Pufferproblem? Versuchen Sie stattdessen 'hPutStrLn stderr'. –
@ ThomasM.DuBuisson Ja, es ist nur ein Pufferproblem! jetzt fühle ich mich irgendwie dumm ... –
Bah, kein Gefühl dumm. Es ist eine faire Frage. Fröhliche Dinge funktionieren. –