GroovyはTennentの通信原理に従っていますか?


15

Tennent's Correspondence Principleの興味深い議論と、Neal Gafterの簡単な説明を以下に示します。

原則では、式またはステートメントは、クロージャーにラップされてすぐに呼び出されたときに、クロージャーにラップされる前と同じ意味を持つ必要があります。クロージャでコードをラップするときのセマンティクスの変更は、おそらく言語の欠陥です。

Groovy言語はこの原則に従っていますか?

回答:


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.