¿Groovy sigue el principio de correspondencia de Tennent?


15

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?

Respuestas:


4

No del todo, pero casi. Todas las variables accesibles en el ámbito externo son accesibles en el cierre, incluidos 'esto' y los miembros de datos de clase. Sin embargo, una returndeclaración regresa del cierre, no de la función de cierre. Ni siquiera estoy seguro de que sea una violación de TCP; No conozco ningún lenguaje de estilo C en el que returnen un cierre regrese del alcance adjunto. No he tenido sorpresas con los cierres Groovy.


Sería -1 si tuviera suficiente representante, ver más en el enlace de OP: programmers.stackexchange.com/questions/116395/…
sq33G
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.