Начальная алгебра
Нача́льная а́лгебра — в математике (в первую очередь в теории категорий) начальный объект категории F-алгебр для заданного эндофунктора F.
Пример[править | править код]
Пусть эндофунктор
Использование в теории программирования[править | править код]
Различные конечные структуры данных, используемые в программировании, такие как списки и деревья, могут быть получены в виде начальных алгебр определённых эндофункторов. Поскольку может существовать несколько начальных алгебр для заданного эндофунктора, они уникальны с точностью до изоморфизма, который неформально является заметным свойством структур данных и может быть адекватно выражен при помощи определения его в виде начальной алгебры.
Для получения типа
Преобразованные в функции они выглядят следующим образом:
,
что делает эту foldr
в функциональном программировании в таких языках программирования как Haskell и ML.
Таким же образом бинарные деревья с элементами в листьевых вершинах могут быть получены в виде начальной алгебры.
.
Типы данных, получаемые подобным образом, называются алгебраическими типами данных.