Главная » Haskell » Стандартные библиотеки

0

Вторая  часть  справочника  содержит  описания программных   сущностей в стандартных модулях и библиотеках языка Haskell, которые всегда поставляются вместе с любыми трансляторами языка (многие из этих модулей даже входят в состав стандарта языка Haskell-98). Описание модулей выполняется в унифицированном виде: сначала описываются все алгебраические типы данных (если имеются), затем классы и их экземпляры и, наконец, функции.  Каждая  глава второй части посвящена отдельному  модулю,  соответственно каждая глава разбита на разделы «Алгебраические  типы данных», «Классы и экземпляры» и «Функции».

Также в начале каждой главы приводится краткое описание предназначения модуля.

Необходимо отметить, что описание модулей и библиотек приводится в соответствии с версиями таких модулей и библиотек, прилагаемых к интерпретатору HUGS 98 версии от сентября 2006 года и компилятору GHC версии 6.6.1. На деле состав  программных сущностей, их способ определения и наличие самих модулей может различаться как от версии интерпретатора HUGS 98, так и от вида транслятора языка Haskell.

Начиная с главы 7. в этой части описываются пакеты модулей в составе иерархической системы модулей. Описание проводится только в рамках стандартных (базовых) модулей, поскольку каждый  транслятор языка Haskell может иметь в составе своей иерархии модулей как другие пакеты, так и иные модули в составе стандартных пакетов. Нестандартные пакеты и модули не описываются в этом справочнике.

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

Необходимо отметить, что в этом справочнике  не описываются  устаревшие модули, которые до сих пор присутствуют в стандартной поставке языка Haskell, однако постепенно будут выводиться из неё, а потому категорически не рекомендуются к использованию. Описание таких модулей бессмысленно, но стоит перечислить их, чтобы было ясно, чем пользоваться нельзя. Это модули: FunctorM (вместо него предлагаются модули Foldable  — см. раздел 8.11. и Traversable — см. раздел 8.28.), PackedString  (вместо него предлагается модуль  ByteString

с намного большей функциональностью  — см. раздел 8.4.), Queue (вместо него необходимо использовать модуль Sequence, где определено  на порядок больше функций для работы с очередями вида FIFO — см. раздел 8.25.).

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

Остаётся упомянуть, что у каждого стандартного модуля в поставке языка Haskell имеется ответственный,  с которым  можно связаться по  определённому электронному адресу для решения вопросов, связанных с поддержкой и дополнением модулей. Это сделано в целях дополнительной стандартизации, так как получается, что за стандартные библиотеки, входящие в поставку любого компилятора,  отвечает один человек. Если не указано иного, то с ответственным за стандартные модули можно связаться по адресу libraries@haskell.org.

Источник: Душкин Р. В., Справочник по языку Haskell. М.: ДМК Пресс, 2008. 544 с., ил.

По теме:

  • Комментарии