Groovy segue il principio di corrispondenza di Tennent?


15

Ecco un'interessante discussione sul principio di corrispondenza di Tennent e una breve descrizione di Neal Gafter :

Il principio impone che un'espressione o un'affermazione, se racchiusa in una chiusura e quindi immediatamente invocata, dovrebbe avere lo stesso significato che aveva prima di essere racchiusa in una chiusura. Qualsiasi cambiamento nella semantica quando si avvolge il codice in una chiusura è probabilmente un difetto nella lingua.

La lingua Groovy segue questo principio?

Risposte:


4

Non del tutto, ma quasi. Tutte le variabili accessibili nell'ambito esterno sono accessibili nella chiusura, inclusi i membri di dati "this" e class. Tuttavia, returnun'istruzione ritorna dalla chiusura, non dalla funzione di chiusura. Non sono nemmeno sicuro che si tratti di una violazione di TCP; Non conosco alcun linguaggio in stile C returnin cui in una chiusura ritorni dall'ambito racchiuso. Non ho avuto sorprese usando le chiusure Groovy.


Sarebbe -1 se avessi un rappresentante sufficiente, vedi più avanti nel link dall'OP: programmers.stackexchange.com/questions/116395/…
sq33G
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.