Apakah Groovy mengikuti Prinsip Korespondensi Tennent?


15

Berikut ini adalah diskusi menarik tentang Prinsip Korespondensi Tennent , dan deskripsi singkat dari Neal Gafter :

Prinsip ini menentukan bahwa suatu ekspresi atau pernyataan, ketika dibungkus dengan penutup dan kemudian segera dipanggil, harus memiliki arti yang sama seperti sebelum dibungkus dengan penutupan. Setiap perubahan dalam semantik saat membungkus kode dalam penutupan kemungkinan adalah cacat dalam bahasa.

Apakah bahasa Groovy mengikuti prinsip ini?

Jawaban:


4

Tidak cukup, tetapi hampir. Semua variabel yang dapat diakses di lingkup luar dapat diakses di penutupan, termasuk 'ini' dan anggota data kelas. Namun, returnpernyataan kembali dari penutupan, bukan dari fungsi melampirkan. Saya bahkan tidak yakin itu merupakan pelanggaran terhadap TCP; Saya tidak tahu bahasa C-style returndi mana dalam penutupan kembali dari lingkup terlampir. Saya tidak punya kejutan menggunakan penutupan Groovy.


Akan menjadi -1 jika saya memiliki perwakilan yang cukup, lihat lebih lanjut di tautan dari OP: programmers.stackexchange.com/questions/116395/…
sq33G
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.