Путаясь в замыканиях
В комментах к статье " Синглтон - корень всех зол ", который вообще-то про паттерн проектирования, я высказал мысль, что в функциональном программировании " все функции - синглтоны " (это уже в смысле lifestyle - больше одной функции на приложение не нужно). Тут же мне более опытные коллеги насовали в панамку, что " функции не синглтоны, потому что существуют замыкания ". Я, конечно, " сварщик не настоящий " - в ФП серьёзно никогда не игрался, но основные идеи вроде как у всех на слуху: неизменяемость данных, чистота функций, функция как аргумент / результат другой функции. На мой субъективный взгляд, при таких вводных, нет никаких доводов за то, чтобы в приложении иметь более одного экземпляра чистой функции. Какой смысл иметь два экземпляра функции, если она не имеет побочных эффектов - для одних и тех же входных данных всегда возвращает один и тот же результат, вне зависимости от внешних условий? Ну? Вот и я думаю, что никакого. Тем не менее, мысль про замыкания надо было как-то подумать - не, ну а вдруг?! Под катом я привожу результаты своих изысканий на примере очень простого функционала на JS, написанного в трёх разных стилях.
https://habr.com/ru/articles/875608/
#фунциональное_программирование #процедурное_программирование #замыкания #шаблоны_проектирования #внедрение_зависимостей #ооп