Aquí hay una discusión interesante del Principio de Correspondencia de Tennent , y una breve descripción de Neal Gafter :
El principio dicta que una expresión o declaración, cuando se envuelve en un cierre y luego se invoca inmediatamente, debe tener el mismo significado que tenía antes de envolverse en un cierre. Cualquier cambio en la semántica al envolver el código en un cierre es probablemente una falla en el lenguaje.
¿El lenguaje Groovy sigue este principio?
fuente