Главная » Haskell

Модуль Time

Добавлено Дата: 23 June, 2012 категория: Haskell

предоставляет программисту  инструменты для работы с системным временем, включая функциональность для обработки собственно времени, информации о временн?ой  зоне и т. д.  Функциональность модуля следует стандарту RFC 1129 в части обработки времени UTC. Использование модуля:

Читать »

Модуль Typeable

Добавлено Дата: 23 June, 2012 категория: Haskell

предоставляет интерфейс для безопасного преобразования типов данных между собой. Это достигается при помощи приписывания типам некоторой метаинформации, которая описывает сам тип. Такие описания типов позволяют достаточно эффективно сравнивать типы данных, что позволяет использовать такие типы в модуле Dynamic (см. раздел 8.7.). Использование:

Читать »

Модуль Base для работы с восьмибитовыми строками

Добавлено Дата: 22 June, 2012 категория: Haskell

Этот модуль является служебным и вряд ли должен использоваться программистом самостоятельно (хотя это возможно). В нём приводятся описания примитивов для работы с восьмибитовыми строками  (алгебраические типы данных и функции). Использование этого модуля выглядит так:
Читать »

Образцы вида (n + k)

Добавлено Дата: 20 June, 2012 категория: Haskell

В  целях обеспечения  совместимости с  математической нотацией  в  языке  Haskell имеется возможность использования так  называемых  образцов вида (n + k). Это значит, что в образцах можно использовать символ (+), который обозначает арифметическое  сложение  чисел. Другими  словами, для числовых значений можно использовать выражение последующих вычисляемых  элементов последовательности через уже имеющиеся. Такой способ представления формул принят в математике, а потому в языке Haskell было решено внедрить эту технику.

Читать »

Prelude: Операторы

Добавлено Дата: 19 June, 2012 категория: Haskell

Операторы — это простые функции одного или двух аргументов. Бинарные (двухместные) операторы обычно ставятся между своих аргументов (инфиксная нотация), вместо того, чтобы ставиться  слева, как это принято для функций. Многие операторы имеют символьное обозначение (например,  (+)) для оператора сложения), однако можно писать и полные имена (для сложения — plus). Другие операторы имеют только текстовые названия (такие как div  для осуществления целочисленного деления).

Читать »

Модуль Traversable

Добавлено Дата: 18 June, 2012 категория: Haskell

В модуле Traversable описан класс типов данных, которые могут быть поэлементно перебраны слева направо, при этом над элементами могут совершаться дополнительные действия. Этот класс описывает специальный вид функторов, как это определено в работах [15, 6]. Использование:

Читать »

Типы данных

Добавлено Дата: 17 June, 2012 категория: Haskell

Язык Haskell обладает достаточно развитой системой типов, в которую включены не только сами типы данных, но и некоторые другие механизмы, позволяющие работать с типами. Более того, из-за принятой в языке модели типизации (статическая модель Хиндли-Милнера) в трансляторах  имеется мощнейший механизм  вывода типов, который  позволяет самостоятельно вычислять типы  выражений, функций и других объектов. Этот механизм в  дополнение нагружен системой классов, которые могут рассматриваться в качестве ограничений и интерфейсов. Всем этим аспектам языка посвящена эта и следующая главы.

Читать »

Простые структуры

Добавлено Дата: 15 June, 2012 категория: Haskell

Та же  технология определения алгебраических  структур  данных  используется и для создания типов, которые в других языках программирования носят названия «структуры» или «записи». Такие типы данных отличаются тем, что содержат некоторый набор полей, каждое из которых может быть какого-либо типа, но при этом весь такой набор рассматривается как единое и целостное значение.

Читать »

Модуль IO

Добавлено Дата: 14 June, 2012 категория: Haskell

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

Читать »

Изоморфные типы

Добавлено Дата: 14 June, 2012 категория: Haskell

В языке Haskell, который, как известно, является нестрогим, ошибочные вычисления и вычисления, которые  не могут быть  остановлены (например, бес-

конечная рекурсия без точки выхода), обозначаются символом (?). Этот символ

обозначает неопределённое значение, при этом система типизации построена так, что любой алгебраический тип данных неявно включает в множество своих зна-

Читать »

Модуль SampleVar

Добавлено Дата: 14 June, 2012 категория: Haskell

представляет описание программных сущностей, которые также работают с переменными синхронизации, но процесс управления немного отличается от переменных, объявленных как MVar (см. подраздел 7.3.2.). Данный

модуль является «подчинённым» по отношению к модулю Concurrent, поэтому его импорт выглядит следующим образом:

Читать »

Именованные поля

Добавлено Дата: 14 June, 2012 категория: Haskell

При определении структур можно всем их элементам давать определённые наименования, и, более того, это автоматически сгенерирует методы доступа на чтение и на запись к соответствующим элементам. Для этого в языке Haskell введено такое понятие, как именованное поле.

Читать »

Анонимные функции

Добавлено Дата: 13 June, 2012 категория: Haskell

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

Читать »

Модуль IntSet

Добавлено Дата: 13 June, 2012 категория: Haskell

В модуле IntSet содержится описание не менее важной идиомы в программировании, как множество (на целых числах). Реализация множеств достаточно эффективна и основана на использовании  специального вида деревьев (вместо обычных сбалансированных деревьев), описанных в работах [19, 16]. В этом модуле ипользуются имена функций, которые конфликтуют со многими функциями из стандартного модуля Prelude,  поэтому использование его выглядит следующим образом:

Читать »

Модуль Arrow

Добавлено Дата: 13 June, 2012 категория: Haskell

содержит базовое определение стрелки, основанное на теоретической работе [9], а также  отчасти на работе [21]. В  этих статьях описаны правила, которым должны удовлетворять описываемые в модуле комбинаторы. Дополнительные материалы по стрелкам могут быть найдены по адресу в интернете http://www.haskell.org/arrows/.

Читать »