Estoy un poco confundido en cuanto al término "cierre" utilizado en el Groovy documentation. De acuerdo con la documentación, su definición de cierre parece más una función anónima o lambda.Groovy Concepto de cierre
Entiendo que los lenguajes que admiten funciones de primera clase, normalmente permiten que se formen cierres. Sin embargo, hay una distinción entre los dos conceptos.
Por ejemplo, de acuerdo con los documentos de Groovy:
Un cierre en Groovy es un trozo anónimo de código que puede tomar argumentos, devolver un valor, y la referencia y utilizar variables declaradas en su entorno alcance.
En lenguaje de lenguaje funcional, dicho bloque de código anónimo podría denominarse expresión lambda anónima en general o expresión lambda con variables independientes o una expresión lambda cerrada si no contiene referencias a variables independientes (como umbral en el ejemplo anterior). Groovy no hace tal distinción.
Entonces, de acuerdo a la página Wikipedia sobre los cierres:
El cierre término se utiliza a menudo erróneamente en el sentido de función anónima.
¿Qué me falta?
Quizás mis ojos se vidriaron mientras leía ese párrafo. – Steve
Probablemente sea la última oración 'Sabemos muy bien que esta terminología es más o menos incorrecta, pero simplifica muchas cosas cuando se habla de código en un lenguaje que no" conoce "la diferencia. Eso lo explica mejor ;-) –
Esa parte es clara. Sin embargo, es lo que antes causó que mi cerebro se rindiera mentalmente, y omita todo el párrafo. :) – Steve