Đây là một cuộc thảo luận thú vị về Nguyên tắc Tương ứng của Tennent và một mô tả ngắn gọn từ Neal Gafter :
Nguyên tắc ra lệnh rằng một biểu thức hoặc câu lệnh, khi được bọc trong một bao đóng và sau đó được gọi ngay lập tức, phải có cùng ý nghĩa như trước khi được đóng trong một bao đóng. Bất kỳ thay đổi về ngữ nghĩa khi gói mã trong một bao đóng có thể là một lỗ hổng trong ngôn ngữ.
Liệu ngôn ngữ Groovy có tuân theo nguyên tắc này?