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

    На этом шаге мы дадим ее краткую характеристику.

    Система ввода-вывода является чисто функциональной благодаря использованию монады IO() для интеграции операций ввода-вывода в функциональный контекст.

    Монада ввода-вывода используется в языке Haskell как связующее звено между  значениями, присущими функциональному языку, и действиями, характеризующими операции ввода-вывода и императивное программирование в общем.

    Таким образом, монада ввода-вывода предоставляет пользователю способ указать последовательное связывание действий.

    Однако, с точки зрения программиста на языке Haskell, лучше думать о монаде как об абстрактном типе данных.

    В случае монады ввода-вывода абстрактными значениями являются действия. Некоторые операции являются примитивными действиями, соответствующими обычным операциям ввода-вывода.

    Специальные операции (методы в классе Monad) последовательно связывают действия, соответствующие последовательным операторам (таким, как "точка с запятой") в языках императивного программирования.

    Несмотря на то, что язык Haskell обеспечивает довольно сложные средства ввода-вывода, определённые в библиотеке IO, многие программы можно писать, используя лишь несколько простых функций, которые экспортируются из модуля Prelude.

    Все функции ввода-вывода, описанные в следующих шагах, работают с символами.

    Заметим только, что обработка символа "Новая строка" будет различаться в различных операционных системах.

    Например, два символа ввода "Возврат каретки" и "Перевод строки" могут восприниматься как один символ новой строки. Поэтому функции, работающие с символом "Новая строка", могут ухудшать переносимость программ.

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




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