Khi xử lý các thuật toán phức tạp trong các ngôn ngữ có hỗ trợ các hàm lồng nhau (như Python và D), tôi thường viết các hàm lớn (vì thuật toán phức tạp) nhưng giảm thiểu điều này bằng cách sử dụng các hàm lồng nhau để cấu trúc mã phức tạp. Các hàm lớn (hơn 100 dòng) vẫn bị coi là xấu ngay cả khi chúng được cấu trúc tốt trong nội bộ thông qua việc sử dụng các hàm lồng nhau?
Chỉnh sửa: Đối với những người bạn không quen thuộc với Python hoặc D, các hàm lồng nhau trong các ngôn ngữ này cũng cho phép truy cập vào phạm vi chức năng bên ngoài. Trong D truy cập này cho phép đột biến các biến trong phạm vi bên ngoài. Trong Python nó chỉ cho phép đọc. Trong D, bạn có thể vô hiệu hóa quyền truy cập vào phạm vi bên ngoài trong một hàm lồng nhau bằng cách khai báo nó static
.