Advertisement
banovski

Recursive IO action

Jul 8th, 2022 (edited)
1,131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Программа принимает слова, вводимые в командной строке, до
  2. -- получения пустой строки, затем превращает полученные слова в
  3. -- перечень с буллитами в виде астерисков и выводит их.
  4.  
  5. import Control.Monad
  6.  
  7. inputToList :: IO ()
  8. inputToList = aux []
  9.   where
  10.     aux xs = do
  11.       input <- getLine
  12.       if input /= ""
  13.         then aux (input : xs)
  14.         else mapM_ (putStrLn . ("* " ++)) (reverse xs)
  15.        
  16. main :: IO ()
  17. main = do
  18.     putStrLn "Enter words and hit 'Enter' or just hit enter to get the list."
  19.     inputToList
  20.  
  21. {--
  22. Вывод:
  23. Enter words and hit 'Enter' or just hit enter to get the list.
  24.  
  25. Ввод:
  26. foo
  27. bar
  28. baz
  29.  
  30. Вывод:
  31. * foo
  32. * bar
  33. * baz
  34. --}
  35.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement