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 var
uż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 ListBuffer
i 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?
var
jest zawsze niefunkcjonalny. Scala ma leniwą optymalizację zawrotów i ogonów, co pozwala całkowicie uniknąć zmiennych.