O Groovy segue o Princípio de Correspondência da Tennent?

15

Aqui está uma discussão interessante sobre o Tennent's Correspondence Principle e uma breve descrição de Neal Gafter :

The principle dictates that an expression or statement, when wrapped in a closure and then immediately invoked, ought to have the same meaning as it did before being wrapped in a closure. Any change in semantics when wrapping code in a closure is likely a flaw in the language.

A linguagem Groovy segue esse princípio?

    
por Armand 27.10.2011 / 15:30
fonte

1 resposta

4

Não é bem assim, mas quase. Todas as variáveis acessíveis no escopo externo são acessíveis no encerramento, incluindo 'this' e membros de dados de classe. No entanto, uma instrução return retorna do fechamento, não da função delimitadora. Eu nem tenho certeza se isso é uma violação do TCP; Não conheço nenhuma linguagem em estilo C em que return em um fechamento retorne do escopo incluído. Eu não tive surpresas usando closures Groovy.

    
por 15.12.2011 / 22:06
fonte