Closures: Difference between revisions
Jump to navigation
Jump to search
(Created page with "=Internal= * Functional Programming Closures") |
|||
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=Internal= | =Internal= | ||
* [[ | * [[Functional_Programming#Closures|Functional Programming]] | ||
* [[Java_8_Lambda_Expressions#Variable_Capture|Java 8 Lambda Expressions]] | |||
* [[Go_Closures#Overview|Go Closures]] | |||
=Overview= | |||
A closure is an instance of a function that can reference non-local variables of that function with no restrictions. This is where the name comes from, a closure '''closes around''' the lexical scope it is created in, thereby capturing variables. The variables can then be modified from the closure, when it executes. The closure can access the data when it executes. [[Go_Closures#Overview|Go closures]] behave this way. [[Java_8_Lambda_Expressions#Variable_Capture| Java 8 lambda expression]] are different, in that they can only refer final local variables in the scope in which the lambda was declared. |
Latest revision as of 20:17, 16 January 2024
Internal
Overview
A closure is an instance of a function that can reference non-local variables of that function with no restrictions. This is where the name comes from, a closure closes around the lexical scope it is created in, thereby capturing variables. The variables can then be modified from the closure, when it executes. The closure can access the data when it executes. Go closures behave this way. Java 8 lambda expression are different, in that they can only refer final local variables in the scope in which the lambda was declared.