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