При работе со сложными алгоритмами в языках с поддержкой вложенных функций (таких как Python и D) я часто пишу огромные функции (потому что алгоритм сложный), но смягчаю это, используя вложенные функции для структурирования сложного кода. Огромные (более 100 строк) функции по-прежнему считаются злыми, даже если они хорошо структурированы внутри благодаря использованию вложенных функций?
Редактировать: Для тех из вас, кто не знаком с Python или D, вложенные функции в этих языках также разрешают доступ к внешней области функций. В D этот доступ допускает мутацию переменных во внешней области видимости. В Python разрешено только чтение. В D вы можете явно отключить доступ к внешней области во вложенной функции, объявив ее static
.