Czy posiadanie zmiennych lokalnych zmiennych w funkcji, które są używane tylko wewnętrznie (np. Funkcja nie ma skutków ubocznych, a przynajmniej nie celowo) jest nadal uważane za „niefunkcjonalne”?
np. podczas sprawdzania stylu kursu „Programowanie funkcjonalne ze Scalą” uznaje każde varużycie za złe
Moje pytanie, jeśli funkcja nie ma skutków ubocznych, czy odradza się pisanie kodu stylu imperatywnego?
np. zamiast używać rekurencji ogona ze wzorem akumulatora, co jest złego w tworzeniu pętli local for i tworzeniu lokalnego mutable ListBufferi dodawaniu do niej, dopóki dane wejściowe nie ulegną zmianie?
Jeśli odpowiedź brzmi „tak, zawsze są zniechęcani, nawet jeśli nie ma żadnych skutków ubocznych”, to jaki jest powód?
varjest zawsze niefunkcjonalny. Scala ma leniwą optymalizację zawrotów i ogonów, co pozwala całkowicie uniknąć zmiennych.