0

Haskell playIO には以下のタイプがあります。

 playIO:: Display   
-> Color    background color
-> Int  
-> world    --initial world 
-> (world -> IO Picture)  -- function to change world into a picture    
-> (Event -> world -> IO world) --event handler function
-> (Float -> world -> IO world) -- The function to update the world after the given time 
-> IO ()

playIO内部でを呼び出すmainと、 によってモデル化された GUI が継続的に更新されて実行されますworld。イベントを処理するコード (コードのコメントを参照) または世界を更新する関数内で何かが発生し、メッセージ (必ずしもエラーではない) を出力したい場合、型に違反しない方法としてどのような方法を使用しますか? 私のメッセージを表示するには、関数から抜け出すplayIO必要がありますか?

4

1 に答える 1

3

たとえば、イベントに基づいてメッセージを送信する場合は、その操作をイベント ハンドラー内に配置します。例えば:

main :: IO ()
main = playIO black 100 world0 renderWorld handleEvent updateWorld

handleEvent evt w =
    do print event -- Right here, you are emitting a message!
       updateWorldWithEvent evt w
       putStrLn "I have updated the world, now time for breakfast."

handleEvent操作が非常に頻繁に発生する可能性があることに注意してください。それに応じて出力を選択してください。

于 2019-01-14T04:52:51.660 に答える