Karteesinen suljettu luokka on luokka , joka sallii curryingin , ts. sisältää kullekin morfismiluokalle jonkin sitä edustavan objektin . Karteesiset suljetut kategoriat ovat tietyssä mielessä väliasemassa abstraktien luokkien ja joukkojen välillä , koska ne mahdollistavat oikean käytön funktioiden kanssa , mutta eivät esimerkiksi aliobjektien kanssa.
Ohjelmoinnin näkökulmasta karteesiset suljetut luokat toteuttavat funktion argumenttien kapseloinnin - jokaista argumenttia edustaa luokkaobjekti ja sitä käytetään mustana laatikkona . Samalla karteesisten suljettujen kategorioiden ilmeisyys riittää toimimaan funktioiden kanssa λ-laskennassa omaksutulla tavalla . Tämä tekee niistä luonnollisia kategoriallisia malleja tyypitetystä λ-laskusta .
Luokkaa C kutsutaan karteesiseksi suljetuksi [1] , jos se täyttää kolme ehtoa:
Sellaista luokkaa, jonka minkä tahansa objektin objektiluokka on suorakulmainen suljettu, kutsutaan paikallisesti karteesiseksi suljetuksi .
Karteesisessa suljetussa kategoriassa "kahden muuttujan funktio" (morfismi f : X × Y → Z ) voidaan aina esittää "yhden muuttujan funktiona" (morfismi λ f : X → Z Y ). Ohjelmoinnissa tämä operaatio tunnetaan nimellä currying ; tämä mahdollistaa yksinkertaisesti kirjoitetun lambda -laskennan tulkinnan missä tahansa karteesisessa suljetussa kategoriassa. Karteesiset suljetut kategoriat toimivat tyyppimallin ja kombinatorisen logiikan luokkamallina .
Curry-Howard-kirjeenvaihto tarjoaa isomorfismin intuitionistisen logiikan, yksinkertaisesti kirjoitetun lambda-laskennan ja karteesisten suljettujen kategorioiden välillä. Matematiikan vaihtoehtoisten perusteiden pääkohteiksi on ehdotettu tiettyjä karteesisia suljettuja kategorioita ( topoi ) perinteisen joukkoteorian sijaan .