เมื่อจัดการกับอัลกอริทึมที่ซับซ้อนในภาษาที่รองรับฟังก์ชันซ้อนกัน (เช่น Python และ D) ฉันมักจะเขียนฟังก์ชั่นขนาดใหญ่ (เพราะอัลกอริทึมมีความซับซ้อน) แต่ลดขนาดลงโดยใช้ฟังก์ชันซ้อนเพื่อสร้างโค้ดที่ซับซ้อน ฟังก์ชั่นขนาดใหญ่ (100+ บรรทัด) ยังถือว่าเป็นความชั่วแม้ว่าจะมีโครงสร้างที่ดีภายในผ่านการใช้ฟังก์ชั่นที่ซ้อนกันอยู่หรือไม่?
แก้ไข: สำหรับผู้ที่คุณไม่คุ้นเคยกับ Python หรือ D ฟังก์ชั่นที่ซ้อนกันในภาษาเหล่านี้ยังอนุญาตการเข้าถึงขอบเขตฟังก์ชั่นด้านนอก ใน D การเข้าถึงนี้ช่วยให้การกลายพันธุ์ของตัวแปรในขอบเขตด้านนอก ใน Python อนุญาตให้อ่านได้เท่านั้น ใน D static
คุณสามารถปิดการเข้าถึงอย่างชัดเจนขอบเขตด้านนอกในฟังก์ชั่นที่ซ้อนกันโดยประกาศว่า