Osittainen sovellus - kyky useissa ohjelmointikielissä korjata osa monipaikkafunktion argumenteista ja luoda toinen funktio, jonka ariteetti on pienempi . Jos sinulla on esimerkiksi kolmoisfunktio , voit korjata ("sidonta") ensimmäisen argumentin ja rakentaa binäärifunktion siten, että mille tahansa .
Ohjelmointikäytännössä käytetään osittaista sovellusta, koska tietyn määrän argumentteja korjaamalla saadut funktiot ovat usein hyödyllisiä. Esimerkiksi monilla ohjelmointikielillä on funktio tai lisäysoperaattori (joka on yhden kiinnitys yhdeksi kaksinkertaisen summan argumentiksi) tai arvon käänteistoiminto. Osittainen sovellus voidaan toteuttaa lähes kaikilla ohjelmointikielillä, joilla on kyky määritellä monipaikkatoimintoja. Useilla kielillä on erikoisrakenteita osittaista käyttöä varten, esimerkiksi C++-standardikirjastossa on funktio bind, joka ottaa syötteenä funktion nimen ja argumentit ja palauttaa funktioobjektin - tulos, joka on seurausta hyväksytyn argumenttijoukon osittaisesta käytöstä. toimintoon.
Useissa funktionaalisissa ohjelmointikielissä , kuten ML ja Haskell , funktiot on oletusarvoisesti ilmoitettu curry -muodossa, eli monipaikkafunktioiden käsite toteutetaan korkeamman asteen unaarifunktioiden avulla ; näissä olosuhteissa osittainen sovellus (kutsutaan näillä kielillä operaattoreiden osaksi ) on mikä tahansa epätäydellisen argumenttien määrän välittäminen [1] .
Ohjelmointikielissä, joissa on ensiluokkaisia toimintoja, voit määrittää curry, uncurryja papply, toteuttaaksesi curryn ja osittaisen sovelluksen suoraan (niiden välinen suhde seuraavasti: curry papply = curry). Mutta tämä lähestymistapa voi johtaa pidempään ohjelman suoritusaikaan ylimääräisten sulkemisten luomisen vuoksi , kun taas Haskell antaa sinun käyttää tehokkaampia temppuja [2] .