Groovy는 Tennent의 통신 원칙을 준수합니까?


15

다음은 Tennent 's Correspondence Principle에 대한 흥미로운 토론Neal Gafter 의 간략한 설명입니다 .

원칙에 따르면 클로저에 싸인 후 즉시 호출 할 때 표현식이나 명령문은 클로저에 싸인 전에와 동일한 의미를 가져야합니다. 클로저에 코드를 래핑 할 때 의미의 변화는 언어의 결함 일 수 있습니다.

그루비 언어가이 원칙을 따르고 있습니까?

답변:


4

확실하지는 않지만 거의. 외부 범위에서 액세스 할 수있는 모든 변수는 'this'및 클래스 데이터 멤버를 포함하여 클로저에서 액세스 할 수 있습니다. 그러나 return명령문은 둘러싸 기 함수가 아니라 클로저에서 리턴합니다. 이것이 TCP 위반인지 확실하지 않습니다. return클로저가 닫는 범위에서 반환 되는 C 스타일 언어를 모르겠습니다 . Groovy 클로저를 사용하는 것에 놀라지 않았습니다.


충분한 담당자가 있다면 -1이 될 것입니다. OP의 링크를 참조하십시오 : programmers.stackexchange.com/questions/116395/…
sq33G
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.