Sulkeuma (ohjelmointi)

Sulkeuma () on funktion ja sen käyttämien (ei-paikallisten) muuttujien viitetaulun yhdistelmä. Tietojenkäsittelytieteessä sulkeuma on ensiluokkainen funktio leksikaaliseen kontekstiin sidottujen vapaiden muuttujien kera. 

Sulkeumia on kutsuttu Lispissä funargeiksi.

Esimerkkinä EcmaScript-kielinen (JavaScript) funktio:

function sulkeumaEsimerkki() {
  var a = "wiki", b = "pedia";
  return function() { return a + b };
}

Kutsuttaessa esimerkkifunktio palauttaa toisen funktion, joka puolestaan pystyy palauttamaan arvon "wikipedia" siitä huolimatta, että ulkoisen funktion suoritus on jo loppunut. Tämä on mahdollista, koska EcmaScript tallentaa ulkoisen funktion viitetaulun sisäiseen funktioon.

Sulkeuma mahdollistaa leksikaalisen näkyvyysalueen (), ts. niiden muuttujien näkyvyyden, jotka määriteltiin lähdekoodin mukaisessa kontekstissa.

Sulkeumia käytetään paljon funktionaalisissa ohjelmointikielissä, ja kielissä kuten Scheme ja ML.

Lähteet 

Funktionaalinen ohjelmointi