¿Groovy sigue el principio de correspondencia de Tennent?

15

Aquí hay una interesante discusión sobre el principio de correspondencia de Tennent , y una breve descripción de Neal Gafter :

  

El principio dicta que una expresión o declaración, cuando está envuelta en un cierre y luego invocada de inmediato, debe tener el mismo significado que tenía antes de ser envuelta 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?

    
pregunta Armand 27.10.2011 - 15:30

1 respuesta

4

No del todo, pero casi. Todas las variables accesibles en el ámbito externo son accesibles en el cierre, incluidos 'this' y miembros de datos de clase. Sin embargo, una declaración return se devuelve desde el cierre, no desde 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 return en un cierre se devuelva desde el ámbito adjunto. No he tenido sorpresas con los cierres Groovy.

    
respondido por el kevin cline 15.12.2011 - 22:06

Lea otras preguntas en las etiquetas