На этой странице вы найдете информацию о программировании, данная информация была взята с разных источников и автором. Поэтому мы не претендуем на авторство этого материала, а лишь предоставляем возможность ознакамливаться с ним.
Открытие файла порождает обработчик (он имеет тип Handle). Закрытие обработчика инициирует закрытие соответствующего файла. Обработчики могут быть… Таким образом, для использования файлов можно пользоваться следующими… type FilePath = String
...
Обработчик исключений имеет тип (IOError ® IO a), при этом функция catch ассоциирует (связывает) обработчик исключений с набором действий:
catch :: IO a -> (IOError -> IO a) -> IO a
Аргументами этой функции являются действие (первый аргумент) и обработчик исключений (второй аргумент). Если… ...
Для списков операция связывания обретает смысл в соединении вместе набора операций, производимых над каждым элементом списка. При использовании со… (>>=) :: [a] -> (a -> [b]) -> [b]
Это обозначает, что дан список значений типа a и функция, которая проецирует значение типа a на список значений типа… ...
Монады являются типами, которые представляют собой экземпляры одного из следующих монадических классов: Functor, Monad и MonadPlus. Ни один из… Математически монада определяется через набор правил, которые связывают… class Monad m where
...
· В декларации импорта (import) можно выборочно спрятать некоторые из экспортируемых объектов (при помощи служебного слова hiding). Это… · При импорте можно определить псевдоним модуля для квалификации имен… · Все программы неявно импортируют модуль Prelude. Если сделать явный импорт этого модуля, то в его декларации можно… ...
Определение модуля в Haskell’е достаточно просто. Именем модуля может быть любой символ, начинается имя только с заглавной буквы. Дополнительно имя… Как известно, на верхнем уровне модуля в Haskell’е может быть множество… Определение модуля должно начинаться со служебного слова module. Например, ниже приведено определение модуля Tree:
...
· Haskell разделяет определения классов и их методов, в то время как такие языки, как C++ и Java вместе определяют структуру данных и методы для её… · Определения методов в Haskell’е соответствуют виртуальным функциям C++.… · Больше всего классы в Haskell’е похожи на интерфейсы Java. Как и определение интерфейса, классы в Haskell’е… ...
· Литералы 1, 2, 3 и т.д. (т.е. цифры) используются как для записи целых чисел, так и для записи чисел произвольной точности.
· Арифметические операции (например, сложение — знак " + ")… · Оператор сравнения (в Haskell’е знак двойного равенства — " == ") используется для сравнения данных… ...
Если возникла необходимость определить какую-либо функцию с использованием механизма охраны, то для этой цели необходимо использовать символ… sign x | x > 0 = 1
| x == 0 = 0
...
В Haskell’е нет нужды обрамлять вызов функции в виде списка. Например, если определена функция, складывающая два числа:
add :: Integer -> Integer -> Integer
add x y = x + y
...