Lập trình chức năng - Đánh giá lười biếng

Đánh giá lười biếng là một chiến lược đánh giá giữ việc đánh giá một biểu thức cho đến khi giá trị của nó là cần thiết. Nó tránh đánh giá lặp lại.Haskell là một ví dụ điển hình về một ngôn ngữ lập trình chức năng có các nguyên tắc cơ bản dựa trên Đánh giá Lười biếng.

Đánh giá lười biếng được sử dụng trong các chức năng bản đồ Unix để cải thiện hiệu suất của chúng bằng cách chỉ tải các trang được yêu cầu từ đĩa. Không có bộ nhớ nào sẽ được cấp cho các trang còn lại.

Đánh giá lười biếng - Ưu điểm

  • Nó cho phép thời gian chạy ngôn ngữ loại bỏ các biểu thức con không được liên kết trực tiếp với kết quả cuối cùng của biểu thức.

  • Nó làm giảm độ phức tạp về thời gian của một thuật toán bằng cách loại bỏ các tính toán tạm thời và các điều kiện.

  • Nó cho phép lập trình viên truy cập các thành phần của cấu trúc dữ liệu không theo thứ tự sau khi khởi tạo chúng, miễn là chúng không có bất kỳ phụ thuộc vòng tròn nào.

  • Nó phù hợp nhất để tải dữ liệu thường xuyên được truy cập.

Đánh giá lười biếng - Mặt hạn chế

  • Nó buộc thời gian chạy ngôn ngữ giữ đánh giá các biểu thức con cho đến khi nó được yêu cầu trong kết quả cuối cùng bằng cách tạo thunks (đối tượng bị trì hoãn).

  • Đôi khi nó làm tăng độ phức tạp không gian của một thuật toán.

  • Rất khó để tìm thấy hiệu suất của nó vì nó chứa các biểu thức thu nhỏ trước khi thực hiện.

Đánh giá lười biếng bằng Python

Các rangephương thức trong Python tuân theo khái niệm Đánh giá lười biếng. Nó tiết kiệm thời gian thực thi cho các phạm vi lớn hơn và chúng tôi không bao giờ yêu cầu tất cả các giá trị cùng một lúc, vì vậy nó cũng tiết kiệm tiêu thụ bộ nhớ. Hãy xem ví dụ sau.

r = range(10) 
print(r) 
range(0, 10) 
print(r[3])

Nó sẽ tạo ra kết quả sau:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
3