Haskell初心者です。
端末を介してメニューを表示し、ユーザーにオプションの紹介を求めるプログラムを作成しようとしています。コードは次のとおりです。
main :: IO ()
main = do
putStrLn "0 <- quit"
putStrLn "1 <- Hello"
putStr "Choose an option: "
c <- getChar
case c of
'0' -> return ()
'1' -> putChar '\n' >> putStrLn "Hello World" >> main
このモジュールを ghci インタープリターで使用すると、すべてが想定どおりに機能します。しかし、これを次のようにコンパイルすると:
ghc hello.hs
ターミナルで実行すると、導入する文字を要求する前に「オプションを選択してください:」という行が表示されません。これは Haskell の怠惰な性質が原因である可能性があり、修正方法がわかりません。
何か案は?