Шаг 206.
Основы языка Haskell. Монада вычислений с побочными эффектами IO. Функции ввода по работе с символами

    На этом шаге мы перечислим эти функции.

    Функции ввода производят чтение данных из стандартного устройства ввода (пользовательская клавиатура).

    1. Функция, считывающая символ из стандартного потока ввода:

   getChar:: IO Char
   getChar

    Например:

   > getChar   > getChar
   q           9

    2. Функция, считывающая строку с клавиатуры и возвращающая считанную строку, "обёрнутую" в монаду IO:

   getLine:: IO String
   getLine

    Например:

   > getLine   > getLine
   "qwe qwe"   " "

    3. Функция, возвращающая весь пользовательский ввод в виде одной строки, которая считывается "лениво", т.е. по мере надобности:

   getContents:: IO String
   getContents

    Например:

   > getContents
   "123456"

    Ввод строки останавливает нажатие клавиш "Ctrl+Z".

    4. Функция получает в качестве аргумента функцию типа String -> String и весь ввод из стандартного устройства ввода передаётся на вход этой функции. Результирующая строка выводится на стандартное устройство вывода.

   interact:: (String -> String) -> IO ()
   interact

    Например:

   main = interact fun
   ----------------------
   fun:: String -> String
   fun x = x++"111"

    5. Функция, преобразующая строку в значение с предупреждением монады ввода-вывода об ошибке разбора:

   readIO 0:: Read a => String -> IO a
   readIO

    6. Функция, считывающая строку с клавиатуры и возвращающая считанную строку, "обёрнутую" в монаду IO с предупреждением монады ввода-вывода об ошибке разбора (другими словами, эта функция объединяет действия функций getLine и readIO):

   readLn 0:: Read a => IO a
   readLn

    На следующем шаге мы рассмотрим функции ввода-вывода для работы с файлами символов.




Предыдущий шаг Содержание Следующий шаг