Замикання (closure)
Коротко: Замикання — функція, яка «пам’ятає» змінні свого оточення — навіть коли зовнішня функція давно завершилася.
Докладніше: Замикання виникають, коли внутрішня функція звертається до змінних зовнішньої й повертається чи передається далі. Вони — основа лічильників, фабрик, зворотних викликів, часткового застосування (каррінг) і патерну «модуль» у JavaScript. Підтримуються в JavaScript, Python, Java (лямбда-вирази), C#, Go, Kotlin, Swift, Rust, Haskell та багатьох інших.
Подробиці
def counter():
state = 0Див. також: лямбда-вираз, функція вищого порядку, зворотний виклик, інкапсуляція