Основы функционального программирования/Haskell/Ввод-вывод: различия между версиями
Основы функционального программирования/Haskell/Ввод-вывод (править)
Версия 15:45, 19 марта 2006
, 15 лет назадЗамена странного чёрного квадрата на '->'
м (Шаблон со списком лекций) |
(Замена странного чёрного квадрата на '->') |
||
putChar :: Char -> IO ()
Друг с другом действия связываются при помощи оператора связывания. Т.е. символы >>= выстраивают последовательность действий. Как известно, вместо этой функции можно использовать служебное слово do. Оно использует такой же двумерный синтексис, как и слова let и where, поэтому можно не использовать для разделения вызова функций символ « ; ». При помощи слова do можно связывать вызовы функций, определение данных (при помощи
Например, так можно определить программу, которая читает символ с клавиатуры и выводит его на экран:
Что делать, если в процессе операций ввода/вывода возникла неординарная ситуация? Например, функция getChar обнаружила конец файла. В этом случае произойдет ошибка. Как и любой продвинутый язык программирования Haskell предлагает для этих целей механизм обработки исключений. Для этого не используется какой-то специальный синтаксис, но есть специальный тип IOError, который содержит описания всех возникаемых в процессе ввода/вывода ошибок.
Обработчик исключений имеет тип (IOError
catch :: IO a -> (IOError -> IO a) -> IO a
|