Charity (язык программирования)

Материал из Циклопедии
Перейти к навигации Перейти к поиску

Charityчистый тотальный функциональный язык программирования, основанный на дистрибутивных категориях с арифметикой (т.е., примитивной рекурсией). В его основе алгебраическая пара:

  • начальные типы: пары из функтора и суммы конструкторов, а также свертки-fold;
  • двойственные им конечные типы: кофунктор, деструкторы + развертка-unfold.

Частным случаем un/fold являются case/record и map.

Конечные типы образуют так называемые коданные, через которые выражаются многие интересные структуры: бесконечные списки, состояния и объекты. Кроме того, именно коиндуктивный тип имеют функции: их first-class статус достигается протаскиванием параметра через деструкторы.

Ссылки[править]