Domknięcie – w metodach realizacji języków programowania jest to obiekt wiążący funkcję lub referencję do funkcji oraz środowisko mające wpływ na tę funkcję w momencie jej definiowania. Środowisko przechowuje wszystkie nielokalne obiekty wykorzystywane przez funkcję. Realizacja domknięcia jest zdeterminowana przez język, jak również przez kompilator.

Domknięcia występują głównie w językach funkcyjnych, w których funkcje mogą zwracać inne funkcje (tzw. funkcje wyższego rzędu), wykorzystujące zmienne utworzone lokalnie. Aby funkcje tego typu były możliwe, muszą one być typem pierwszoklasowym.

Przykład Przykład domknięcia w języku Python:

def mnozenie_przez(mnoznik): def domnoz(mnozna): # funkcja wykorzystuje dwie zmienne: # mnozna – dostępną dla użytkownika # mnoznik – zdefiniowaną tylko wewnątrz funkcji 'mnozenie_przez' return mnozna * mnoznik

return domnoz

iloczyn_5_przez = mnozenie_przez(5)

print(iloczyn_5_przez(12)) # zostanie wypisane 12*5, czyli 60

funkcja iloczyn_5_przez oprócz argumentu formalnego mnozna ma dostęp (poprzez domknięcie) do kopii wartości mnoznik przekazanej w wywołaniu funkcji mnozenie_przez (w tym przykładzie mnoznik to liczba 5). Poniżej ten sam przykład w języku JavaScript:

function mnozenie_przez(x) { return function(y) { return x * y;

var iloczyn_5_przez = mnozenie_przez(5);

console.log(iloczyn_5_przez(12)); // 60

Bibliografia

Kategoria:Programowanie komputerów Kategoria:Programowanie funkcyjne