Ero sivun ”Sulkeuma (ohjelmointi)” versioiden välillä
[katsottu versio] | [katsottu versio] |
p kh. |
Pelastettu 1 lähde(ttä) ja merkitty 0 kuolleeksi.) #IABot (v2.0.8.8 |
||
Rivi 1: | Rivi 1: | ||
'''Sulkeuma''' ({{k-en|closure}}) on [[funktio]]n ja sen käyttämien (ei-paikallisten) muuttujien viitetaulun yhdistelmä. [[Tietojenkäsittelytiede|Tietojenkäsittelytieteessä]] sulkeuma on [[ensiluokkainen funktio]] leksikaaliseen kontekstiin sidottujen vapaiden [[muuttuja (ohjelmointi)|muuttujien]] kera. <ref name="susscheme">{{Verkkoviite | Osoite = http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-349.pdf | Nimeke = Scheme - An Interpreter For Extended Lambda Calculus | Tekijä = G. J. Sussman and G. L. Steele Jr.| Tiedostomuoto = pdf | Selite = section 4, page 21- (pdf page 22)| Julkaisu = AI Memo No. 349 | Ajankohta = December 1975| Julkaisupaikka = Massachusetts Institute Of Technology | Julkaisija = | Viitattu = 13.1.2012 | Kieli = {{en}} }}</ref> |
'''Sulkeuma''' ({{k-en|closure}}) on [[funktio]]n ja sen käyttämien (ei-paikallisten) muuttujien viitetaulun yhdistelmä. [[Tietojenkäsittelytiede|Tietojenkäsittelytieteessä]] sulkeuma on [[ensiluokkainen funktio]] leksikaaliseen kontekstiin sidottujen vapaiden [[muuttuja (ohjelmointi)|muuttujien]] kera. <ref name="susscheme">{{Verkkoviite | Osoite = http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-349.pdf | Nimeke = Scheme - An Interpreter For Extended Lambda Calculus | Tekijä = G. J. Sussman and G. L. Steele Jr. | Tiedostomuoto = pdf | Selite = section 4, page 21- (pdf page 22) | Julkaisu = AI Memo No. 349 | Ajankohta = December 1975 | Julkaisupaikka = Massachusetts Institute Of Technology | Julkaisija = | Viitattu = 13.1.2012 | Kieli = {{en}} | arkisto = https://web.archive.org/web/20130903173444/http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-349.pdf | arkistoitu = 3.9.2013 }}</ref> |
||
Sulkeumia on kutsuttu Lispissä <code>funarg</code>eiksi.<ref name="susscheme" /> |
Sulkeumia on kutsuttu Lispissä <code>funarg</code>eiksi.<ref name="susscheme" /> |
Nykyinen versio 19. heinäkuuta 2022 kello 18.40
Sulkeuma (engl. closure) on funktion ja sen käyttämien (ei-paikallisten) muuttujien viitetaulun yhdistelmä. Tietojenkäsittelytieteessä sulkeuma on ensiluokkainen funktio leksikaaliseen kontekstiin sidottujen vapaiden muuttujien kera. [1]
Sulkeumia on kutsuttu Lispissä funarg
eiksi.[1]
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 (engl. lexical scope), 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
[muokkaa | muokkaa wikitekstiä]- ↑ a b G. J. Sussman and G. L. Steele Jr.: Scheme - An Interpreter For Extended Lambda Calculus (pdf) (section 4, page 21- (pdf page 22)) AI Memo No. 349. December 1975. Massachusetts Institute Of Technology. Arkistoitu 3.9.2013. Viitattu 13.1.2012. (englanniksi)