Чи вважається наявність мінливих локальних змінних у функції, які використовуються лише внутрішньо (наприклад, функція не має побічних ефектів, принаймні не навмисно), як і раніше вважається "нефункціональною"?
наприклад, у курсі стилю курсу "Функціональне програмування з Scala" будь-яке var
використання вважається поганим
На моє запитання, якщо функція не має побічних ефектів, чи написання імперативного коду стилю все ще не рекомендується?
наприклад, замість використання хвостової рекурсії з малюнком акумулятора, що поганого в тому, щоб зробити локальний цикл і створити локальний змінний ListBuffer
і додати до нього, доки вхід не буде змінено?
Якщо відповідь "так, вони завжди відлякують, навіть якщо побічних ефектів немає", то в чому причина?
var
завжди нефункціональний. Scala має ліниві оптичні оптимізації та рекурсію хвостів, які дозволяють повністю уникнути перепадів.