~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 388EA26135A26981FC0FD13B98C55937__1675090320 ✰
Заголовок документа оригинал.:
✰ Function type - Wikipedia ✰
Заголовок документа перевод.:
✰ Тип функции — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Function_type ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/38/37/388ea26135a26981fc0fd13b98c55937.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/38/37/388ea26135a26981fc0fd13b98c55937__translat.html ✰
Дата и время сохранения документа:
✰ 09.06.2024 11:49:48 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 30 January 2023, at 17:52 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Тип функции — Википедия Jump to content

Тип функции

Из Википедии, бесплатной энциклопедии

В информатике и математической логике ( тип функции или тип стрелки или экспонента ) — это тип переменной или параметра , которому функция имеет или может быть присвоена, либо тип аргумента или результата функции более высокого порядка, принимающей или возвращающей функция.

Тип функции зависит от типа параметров и типа результата функции (точнее, неиспользуемого конструктора типа). · → ·, является типом высшего рода ). В теоретических установках и языках программирования где функции определены в каррированной форме , таких как просто типизированное лямбда-исчисление , тип функции зависит ровно от двух типов: домена A и диапазона B. , Здесь тип функции часто обозначается A B , следуя математическому соглашению, или B. А , исходя из того, что существует ровно B А (экспоненциально многие) теоретико-множественные функции , отображающие A в B в категории множеств . Класс таких отображений или функций называется экспоненциальным объектом . Каррирование делает тип функции смежным с типом продукта ; это подробно рассматривается в статье о каррировании.

Тип функции можно рассматривать как частный случай типа зависимого продукта , который, помимо других свойств, включает в себя идею полиморфной функции .

Языки программирования [ править ]

Синтаксис, используемый для типов функций на нескольких языках программирования, можно обобщить, включая пример сигнатуры типа для функции композиции функций более высокого порядка :

Язык Обозначения Пример подписи типа
С первоклассными функциями ,
параметрический полиморфизм
С# Func<α1,α2,...,αn,ρ> Func<A,C> compose(Func<B,C> f, Func<A,B> g);
Хаскелл α -> ρ compose :: (b -> c) -> (a -> b) -> a -> c
OCaml α -> ρ compose : ('b -> 'c) -> ('a -> 'b) -> 'a -> 'c
Скала (α1,α2,...,αn) => ρ def compose[A, B, C](f: B => C, g: A => B): A => C
Стандартный ML α -> ρ compose : ('b -> 'c) -> ('a -> 'b) -> 'a -> 'c
Быстрый α -> ρ func compose<A,B,C>(f: (B) -> C, g: (A) -> B) -> (A) -> C
Ржавчина fn(α1,α2,...,αn) -> ρ fn compose<A, B, C>(f: fn(A) -> B, g: fn(B) -> C) -> fn(A) -> C
С первоклассными функциями ,
без параметрического полиморфизма
Идти func(α1,α2,...,αn) ρ var compose func(func(int)int, func(int)int) func(int)int
C++ , Objective-C , с блоками ρ (^)(α1,α2,...,αn) int (^compose(int (^f)(int), int (^g)(int)))(int);
Без первоклассных функций ,
параметрический полиморфизм
С ρ (*)(α1,α2,...,αn) int (*compose(int (*f)(int), int (*g)(int)))(int);
С++11 Не уникальный.

std::function<ρ (α1,α2,...,αn)> является более общим типом (см. ниже).

function<function<int(int)>(function<int(int)>, function<int(int)>)> compose;

Если посмотреть на пример сигнатуры типа, например C#, тип функции compose на самом деле Func<Func<A,B>,Func<B,C>,Func<A,C>>.

Из-за стирания типов в C++11 std::function, чаще используются шаблоны для параметров функций более высокого порядка и вывода типа ( auto) для замыканий .

Денотационная семантика [ править ]

Тип функции в языках программирования не соответствует пространству всех теоретико-множественных функций. Учитывая счетный бесконечный тип натуральных чисел в качестве области определения и логических значений в качестве диапазона, тогда существует несчетное бесконечное число (2 0 = c ) теоретико-множественных функций между ними. Очевидно, что это пространство функций больше, чем количество функций, которые могут быть определены на любом языке программирования, поскольку существует только счетное количество программ (программа представляет собой конечную последовательность конечного числа символов) и одну из теоретико-множественных функций эффективно решает проблему остановки .

Денотационная семантика занимается поиском более подходящих моделей (называемых доменами ) для моделирования концепций языка программирования, таких как типы функций. Оказывается, что ограничения выражения набором вычислимых функций также недостаточно, если язык программирования позволяет записывать непрерывные вычисления (что имеет место, если язык программирования является полным по Тьюрингу ). Выражение должно быть ограничено так называемыми непрерывными функциями (соответствующими непрерывности в топологии Скотта , а не непрерывности в реальном аналитическом смысле). Но даже в этом случае множество непрерывных функций содержит параллельную функцию-ИЛИ , которая не может быть правильно определена во всех языках программирования.

См. также [ править ]

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

  • Пирс, Бенджамин К. (2002). Типы и языки программирования . Массачусетский технологический институт Пресс. стр. 99–100 . ISBN  9780262162098 .
  • Митчелл, Джон К. Основы языков программирования . Массачусетский технологический институт Пресс.
  • тип функции в n Lab
  • Теория гомотопических типов: одновалентные основы математики , Программа одновалентных оснований, Институт перспективных исследований . См. раздел 1.2 .
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 388EA26135A26981FC0FD13B98C55937__1675090320
URL1:https://en.wikipedia.org/wiki/Function_type
Заголовок, (Title) документа по адресу, URL1:
Function type - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)