Низший тип (нулевой тип, пустой тип) — объект, использующийся в некоторых теориях типов и языках программирования, соответствующий типу без значений. Стандартное математическое обозначение — верхний галс[en] (). В рамках соответствия Карри — Ховарда низший тип соответствует логической ложной формуле.

В системах, предусматривающих подтипы, низший тип является подтипом всех типов[1]; при этом обратное может быть неверно — в некоторых вариантах подтип всех типов не обязательно будет низшим. В некоторых системах типов вводится двойственное понятие — высший тип, охватывающий все возможные значения в системе.

В программировании низший тип в качестве возвращаемого значения функции часто используется чтобы показать расходимость функции: когда функция не возвращает никаких результатов вызывающей стороне. Поддерживаются в Haskell (начиная с версии 2010), Common Lisp (символ NIL), Scala (Nothing; также используется для ковариантности параметризованных типов), Rust (экспериментальный тип данных, обозначаемый как !; присутствует в сигнатуре функций, которые гарантированно не возвращают значений, например, при вызове panic!() или бесконечном цикле, и как возвращаемый тип для операторов потока управления, таких как break и return)[2], Ceylon (Nothing)[3], Julia (Union{})[4], TypeScript (never)[5][6], JavaScript с аннотациями Closure Compiler[en] (!Null), PHP (never), Python (typing.NoReturn или typing.Never)[7], Kotlin (Nothing)[8], Elm (Never)[9], D (noreturn)[10].

Примечания править

  1. Пирс Бенджамин С. (1997). "Ограниченная количественная оценка с низшим пределом". CiteSeerX 10.1.1.17.9230. {{cite journal}}: Cite journal требует |journal= (справка)
  2. Примитивный тип never. Документация стандартной библиотеки Rust. Дата обращения: 24 сентября 2020. Архивировано 23 сентября 2020 года.
  3. Глава 3. Система типов — 3.2.5. Низший тип. Язык программирования Ceylon. Red Hat, Inc.. Дата обращения: 19 февраля 2017. Архивировано 20 февраля 2017 года.
  4. Основы языка программирования Julia Архивная копия от 25 июля 2021 на Wayback Machine
  5. The never type, TypeScript 2.0 release notes, Microsoft, 2016-10-06, Дата обращения: 1 ноября 2019 Архивная копия от 30 октября 2019 на Wayback Machine
  6. The never type, TypeScript 2.0 release notes, source code, Microsoft, 2016-10-06, Дата обращения: 1 ноября 2019 Архивная копия от 16 июля 2021 на Wayback Machine
  7. typing.NoReturn, typing — Поддержка подсказок типов, документация языка Python, Фонд программного обеспечения Python, Дата обращения: 25 февраля 2020 Архивная копия от 21 февраля 2020 на Wayback Machine
  8. Nothing, Дата обращения: 15 мая 2020 Архивная копия от 25 февраля 2020 на Wayback Machine
  9. Never, Дата обращения: 25 марта 2021 Архивная копия от 10 апреля 2021 на Wayback Machine
  10. Types - D Programming Language. dlang.org. Дата обращения: 31 июля 2022. Архивировано 15 июля 2022 года.

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