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?

Armand
sumber

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.

kevin cline
sumber
Akan menjadi -1 jika saya memiliki perwakilan yang cukup, lihat lebih lanjut di tautan dari OP: programmers.stackexchange.com/questions/116395/…
sq33G