[Haskell] Haskellで入力を繰り返し受け付ける

Haskellで入力を繰り返し受け付ける

HaskellでCLIを作りたいと思い、その練習として入力を繰り返し受け付ける簡単なサンプルを作成しました。
手続き型言語であればwhile文で実装するのですが、関数型言語なので再帰関数で実装しています。

import System.IO (hFlush, stdout)

main :: IO ()
main = loop
  where
    loop = do
      putStr "何か入力してください: "
      hFlush stdout
      input <- getLine
      putStrLn $ "入力されたもの: " ++ input
      loop -- 自分自身を呼び出してループを継続

実行すると以下のようになります。

$ runghc loop.hs
何か入力してください: ああ
入力されたもの: ああ
何か入力してください: あああ
入力されたもの: あああ
何か入力してください: 

コメント

タイトルとURLをコピーしました