Tôi vừa đọc https://techfindings.one/archives/2652 về lập trình chức năng và đã đi qua điều này:
Các hàm ẩn danh thường không thể được biên dịch JIT và sẽ không bao giờ được tối ưu hóa
Ai đó có thể giải thích cho tôi tại sao đây là trường hợp?
Tôi vừa đọc https://techfindings.one/archives/2652 về lập trình chức năng và đã đi qua điều này:
Các hàm ẩn danh thường không thể được biên dịch JIT và sẽ không bao giờ được tối ưu hóa
Ai đó có thể giải thích cho tôi tại sao đây là trường hợp?
Câu trả lời:
Có một quan niệm sai lầm phổ biến về các hàm lồng nhau, được đặt tên hoặc ẩn danh, nơi mọi người nghĩ rằng vì hàm được khai báo bên trong hàm khác, trình biên dịch phải biên dịch lại nó mỗi khi hàm ngoài được gọi. Điều này không đúng. Mã của hàm là không đổi, ngay cả khi ngữ cảnh gọi của nó không, và nó có thể được nội tuyến hoặc tối ưu hóa giống như bất kỳ hàm nào khác. Sự nhầm lẫn này có vẻ đặc biệt mạnh mẽ giữa các lập trình viên, những người chủ yếu sử dụng các hàm lồng nhau trong các triển khai ngôn ngữ / JIT, như trong câu hỏi này .
Bài báo đó có một vài quan niệm sai lầm tương tự khác cho thấy anh ta không hiểu các vấn đề cũng như anh ta nghĩ rằng anh ta làm. Tôi sẽ không coi đó là một nguồn đáng tin cậy để tìm hiểu về lập trình chức năng.