Groovy segue o princípio de correspondência da Tennent?


15

Aqui está uma discussão interessante do Princípio da Correspondência da Tennent e uma breve descrição de Neal Gafter :

O princípio determina que uma expressão ou declaração, quando envolvida em um fechamento e depois imediatamente invocada, deve ter o mesmo significado que tinha antes de ser envolvida em um fechamento. Qualquer alteração na semântica ao envolver o código em um fechamento é provavelmente uma falha no idioma.

A linguagem Groovy segue esse princípio?

Respostas:


4

Não exatamente, mas quase. Todas as variáveis ​​acessíveis no escopo externo são acessíveis no fechamento, incluindo 'this' e membros de dados da classe. No entanto, uma returndeclaração retorna do fechamento, não da função de fechamento. Eu nem tenho certeza se isso é uma violação do TCP; Não conheço nenhuma linguagem de estilo C em que, returnem um fechamento, retorne do escopo em anexo. Não tive surpresas usando os fechamentos Groovy.


Seria -1 se eu tivesse representante suficiente, veja mais no link do OP: programmers.stackexchange.com/questions/116395/…
sq33G
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.