Я изучаю функциональное программирование и пытаюсь решить пару проблем в функциональном стиле. Одна вещь, которую я испытал, разделив мою задачу на функции, казалось, что у меня было два варианта: использовать несколько разрозненных функций с похожими списками параметров или использовать вложенные функции, которые в качестве замыканий могут просто ссылаться на привязки в родительской функции.Вложенные функции: Неправильное использование побочных эффектов?
Хотя я перешел ко второму подходу, потому что он делал вызовы функций меньше, и казалось, что они «чувствуют» себя лучше, из моего чтения кажется, что мне может не хватать одного из основных пунктов функционального программирования, это кажется «побочным»? Теперь предоставленные эти вложенные функции не могут изменять внешние привязки, поскольку язык, который я использовал, предотвращает это, но если вы посмотрите на каждую отдельную внутреннюю функцию, вы не можете сказать «с учетом тех же параметров, эта функция вернет те же результаты», потому что они используют переменные из родительской области ... Я прав?
Каков желательный способ продолжения?
Спасибо!
facHelper фактически не относится к каким-либо внешним значениям - он по-прежнему чисто функциональный. – 2008-11-22 07:28:33