Groovy segue il principio di corrispondenza di Tennent?

15

Ecco una discussione interessante del principio di corrispondenza di Tennent e una breve descrizione da 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.

La lingua Groovy segue questo principio?

    
posta Armand 27.10.2011 - 15:30
fonte

1 risposta

4

Non del tutto, ma quasi. Tutte le variabili accessibili nello scope esterno sono accessibili nella chiusura, inclusi "this" e membri dei dati di classe. Tuttavia, un'istruzione return restituisce dalla chiusura, non dalla funzione di chiusura. Non sono nemmeno sicuro che sia una violazione del TCP; Non conosco alcun linguaggio in stile C in cui return in una chiusura ritorna dall'ambito di chiusura. Non ho avuto sorprese con le chiusure Groovy.

    
risposta data 15.12.2011 - 22:06
fonte

Leggi altre domande sui tag