Контейнер (теория типов) - Container (type theory)
В теория типов, контейнеры являются абстракциями, которые допускают различные "типы коллекций", такие как списки и деревья, чтобы быть представленными единообразно. А (унарный ) контейнер определяется типом формы S и семейство типов позиции P, индексируемый S. расширение контейнера - это семейство зависимых пар, состоящих из формы (типа S) и функции от позиций этой формы до типа элемента. Контейнеры можно рассматривать как канонические формы для типов коллекций.[1]
Для списков тип формы - это натуральные числа (включая ноль). Соответствующие типы позиций - это типы натуральных чисел меньше фигуры для каждой фигуры.
Для деревьев тип формы - это тип деревьев единиц (то есть деревья, в которых нет информации, а есть только структура). Соответствующие типы позиций изоморфны типам допустимых путей от корня к конкретным узлам на фигуре для каждой формы.
Обратите внимание, что натуральные числа изоморфны спискам единиц. В общем, тип формы всегда будет изоморфен исходному неуниверсальному семейству типов контейнера (список, дерево и т. Д.), Примененному к модулю.
Одна из основных причин введения понятия контейнеров - поддержка общее программирование в зависимо типизированный параметр.[1]
Категориальные аспекты
Эта секция нуждается в расширении. Вы можете помочь добавляя к этому. (Октябрь 2008 г.) |
Расширение контейнера - это эндофунктор. Требуется функция грамм
к
Это эквивалентно знакомому карта g
в случае списков и делает нечто подобное для других контейнеров.
Проиндексированные контейнеры
Эта секция нуждается в расширении. Вы можете помочь добавляя к этому. (Октябрь 2008 г.) |
Проиндексированные контейнеры (также известный как зависимые полиномиальные функторы) являются обобщением контейнеров, которые могут представлять более широкий класс типов, например векторы (списки размеров).[2]
Тип элемента (называемый тип ввода) индексируется по форме и положению, поэтому он может варьироваться по форме и положению, а также по расширению (называемому тип вывода) также индексируется по форме.
Смотрите также
Рекомендации
- ^ а б Майкл Эбботт; Торстен Альтенкирх; Нил Гани (2005). «Контейнеры: конструирование строго положительных типов». Теоретическая информатика. 342 (1): 3–27. Дои:10.1016 / j.tcs.2005.06.002.
- ^ Торстен Альтенкирх, Нил Гани, Питер Хэнкок, Конор МакБрайд, и Питер Моррис. «Проиндексированные контейнеры» (PDF). Неопубликованная рукопись. Получено 2008-10-30. Цитировать журнал требует
| журнал =
(помощь)CS1 maint: несколько имен: список авторов (связь)
внешняя ссылка
- Типы контейнеров блог
Этот теория языков программирования или же теория типов -связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |