Кіріспе

Компьютерлік ғылым мен математикалық логикада функция түрі (немесе жебе түрі немесе экспонента) – функцияны тағайындауға болатын немесе функция тағайындалған айнымалының немесе параметрдің түрі, сондай-ақ функцияны қабылдайтын немесе қайтаратын жоғары деңгейлі функцияның аргументі немесе нәтиже түрі. Функция түрі параметрлердің түріне және функцияның нәтиже түріне байланысты (немесе дәлірек айтқанда, қолданылмаған типтік конструктор · → ·, жоғары ретті тип). Теориялық тұрғыда және функциялар кари формасында анықталатын бағдарламалау тілдерінде, мысалы, қарапайым типтелген лямбда-есептеуде, функция түрі дәл екі типке – A доменіне және B диапазонына байланысты. Мұнда функция түрі математикалық конвенция бойынша көбінесе A → B немесе жинақтар санатындағы A-дан B-ға сәйкестіктердің экспоненциалды саны B^(A) болатындықтан B^(A) деп белгіленеді. Мұндай сәйкестіктер немесе функциялар класы экспоненциалды объект деп аталады. Карилеу амалы функция түрін өнім түріне қосады; бұл мәселе карилеу туралы мақалада егжей-тегжейлі қарастырылады. Функция түрін тәуелді өнім түрінің ерекше жағдайы деп қарастыруға болады, ол полиморфты функция идеясын қамтиды және басқа да қасиеттерге ие.

Денотациялық семантика

Бағдарламалау тілдеріндегі функция түрі барлық теориялық функциялар кеңістігіне сәйкес келмейді. Табиғи сандардың санаулы шексіз түрін домен ретінде, ал бульдіктерді ауқым ретінде қарастырғанда, олардың арасында санаулы емес шексіз саны (2ℵ₀ = c) теориялық функциялар бар. Бұл функциялар кеңістігі кез келген бағдарламалау тілінде анықталуы мүмкін функциялар санынан үлкен екендігі анық, себебі бағдарламалардың саны санаулы (бағдарлама – символдардың шекті санының шекті тізбегі), ал теориялық функциялардың бірі тоқтау мәселесін тиімді шешеді. Денотациялық семантика функция түрлері сияқты бағдарламалау тілінің ұғымдарын модельдеуге арналған қолайлы модельдерді (домендер деп аталады) табумен айналысады. Бағдарламалау тілі аяқталмайтын есептеулерді жазуға мүмкіндік берсе (яғни бағдарламалау тілі Тьюринг толық болса), өрнекті есептеуге болатын функциялар жиынымен шектеу жеткіліксіз болып шығады. Өрнекті «жалғасты функциялар» деп аталатын функциялармен шектеу керек (Скотт топологиясындағы жалғастылыққа сәйкес келеді, нақты аналитикалық мағынадағы жалғастылыққа сәйкес келмейді). Тіпті сонда да, жалғасты функциялар жиынында барлық бағдарламалау тілдерінде дұрыс анықталмайтын параллель немесе функция бар.