Uczę się programowania funkcjonalnego i próbowałem rozwiązać kilka problemów w funkcjonalnym stylu. Jedną rzeczą, której doświadczyłem, dzieląc swój problem na funkcje, wydawało się, że mam dwie opcje: użyj kilku różnych funkcji z podobnymi listami parametrów lub używając funkcji zagnieżdżonych, które jako zamknięcia mogą po prostu odnosić się do powiązań w funkcji nadrzędnej.Funkcje zagnieżdżone: Niewłaściwe korzystanie z efektów ubocznych?
Chociaż skończyłem na drugim podejściu, ponieważ spowodowało to zmniejszenie liczby wywołań funkcji i wydawało się, że "czuję" się lepiej, z mojego czytania wydaje mi się, że brakuje mi jednego z głównych punktów programowania funkcjonalnego, w tym to wydaje się być "side-effecty"? A teraz te funkcje zagnieżdżone nie mogą modyfikować zewnętrznych powiązań, ponieważ używany przeze mnie język to uniemożliwia, ale jeśli spojrzysz na każdą indywidualną funkcję wewnętrzną, nie możesz powiedzieć "mając te same parametry, ta funkcja zwróci te same wyniki" ponieważ używają zmiennych z zakresu nadrzędnego ... czy mam rację?
Jaki jest pożądany sposób postępowania?
Dzięki!
FacHelper w rzeczywistości nie odnosi się do żadnych wartości zewnętrznych - nadal jest czysto funkcjonalny. –