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?

Armand
fonte

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.

Kevin Cline
fonte
Seria -1 se eu tivesse representante suficiente, veja mais no link do OP: programmers.stackexchange.com/questions/116395/…
sq33G