Основы функционального программирования/Haskell/Модули и монады: различия между версиями

Содержимое удалено Содержимое добавлено
м Категоризация по запросу на w:ВП:РДБ
Нет описания правки
Строка 11:
В Haskell у модулей двоякое назначение: с одной стороны, — контроль за [[w:Пространство имён (программирование)|пространством имён]] (как и во всех других языках), с другой, — создание [[w:Абстрактный тип данных|абстрактных типов данных]].
 
Определить модуль просто: имя состоит из любых символов, лишь начинаться оно должно с прописнойзаглавной буквы. Имя модуля никак не связано с [[Файловая система|файловой системой]] (как, например, в [[w:Паскаль (язык программирования)|Паскале]] или [[w:Java|Java]]): файл, содержащий описание модуля, может называться отлично от самого модуля; также, он может содержать несколько модулей, ибо модуль есть лишь декларация самого высокого уровня.
 
На верхнем уровне модуля в Haskell может быть множество деклараций (описаний и определений): [[w:Тип данных|типы]], [[w:Класс (программирование)|классы]], [[w:Данные (вычислительная техника)|данные]], [[w:Функция (программирование)|функции]]. Один вид деклараций, если он вообще используется, должен стоять в модуле на первом месте: это включение в модуль других модулей, что делается словом <code>import</code>. Другие определения могут появляться в любой последовательности.