Теория категорий в программировании | Сопоставляются ли объекты с типами или экземплярами типов? - PullRequest
1 голос
/ 10 июля 2020

Строительные блоки теории категорий определяются objects и arrows.

Если стрелки можно рассматривать как функции языка программирования; сопоставляются ли объекты с Типами; или экземпляр типа ... или «либо», либо «оба», или это не имеет значения, или ...?

Я видел стрелку единицы измерения, описанную в терминах программирования, как

a.) Функция, возвращающая тот же экземпляр, в который она была передана; но с Generics / Templates

fun c identity (a: A): A {return a; }

b.), А также как «добавить ноль» для категории сложения

fun c sum (i: Int): Int {return i + 0; }

Я думаю, это имеет значение, потому что количество объектов в категории имеет тенденцию быть значимым аспектом. Итак, если во втором примере объекты рассматриваются как вид типа (Int); тогда категория добавления состоит из одного объекта; но если объекты рассматриваются как каждое целое число; тогда в категории сложения есть бесконечные объекты

1 Ответ

1 голос
/ 11 июля 2020

Int - это объект в категории типов и функций, а sum - это морфизм от Int до Int.

identity - это полиморфная функция c, так что это семейство морфизмов проиндексировано по типу. Такое семейство морфизмов называется естественным преобразованием . Его компонент в Int имеет тот же морфизм, что и ваш sum.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...