Cách sử dụng laziness rõ ràng nhất trong ngôn ngữ hàng ngày là câu lệnh "if", trong đó chỉ có một nhánh của điều kiện được thực thi.
Ngược lại với ngôn ngữ hoàn toàn không nghiêm ngặt (lười biếng) sẽ là một ngôn ngữ hoàn toàn nghiêm ngặt.
Có ít nhất một trường hợp 'hoàn toàn nghiêm ngặt' có lợi, cụ thể là branch predication.
diễn giải Rough của bài viết liên quan:
Cách đây rất lâu trong thế giới của CPU, hướng dẫn để thực hiện được nạp khi điều kiện chi nhánh đã được thử nghiệm. Tại một số điểm, đường ống dẫn đã được thêm vào để giảm thời gian tải. Nhược điểm là một CPU sẽ không biết chi nhánh nào cần tải, vì vậy nó sẽ mặc định tải một nhánh. Nếu nhánh rẽ theo cách khác, đường ống sẽ dừng lại trong khi mã cho nhánh kia đã được nạp.
Giải pháp là tải cả hai nhánh, thực hiện cả hai nhánh, sau đó kết quả của điều kiện cho bạn biết kết quả nhánh nào sẽ giữ lại, và cái nào cần vứt bỏ. Sau đó, bạn không nhận được các quầy hàng đường ống.
Đây là ví dụ yêu thích của tôi (chỉ?) Về lợi ích của một ngôn ngữ hoàn toàn nghiêm ngặt.
Lý thuyết sang một bên, có thể sử dụng thông minh đánh giá nghiêm ngặt trong các ngôn ngữ lười biếng. Haskell có "!" nghiêm ngặt chú thích cho datatypes để sử dụng trong buộc đánh giá các điều khoản mà lười biếng sẽ chỉ có gây ra sưng lên bộ nhớ. Các ví dụ hay về thời điểm tắt lười biếng chắc chắn sẽ là "sử dụng thông minh về đánh giá nghiêm ngặt". – rndmcnlly