Voici une discussion intéressante sur le principe de correspondance de Tennent , et une brève description de Neal Gafter :
Le principe veut qu'une expression ou une déclaration, lorsqu'elle est enveloppée dans une fermeture puis invoquée immédiatement, ait la même signification qu'avant d'être enveloppée dans une fermeture. Tout changement de sémantique lors de l'encapsulation de code dans une fermeture est probablement une faille dans le langage.
La langue Groovy suit-elle ce principe?
la source