¿Tener variables locales mutables en una función que solo se usan internamente (por ejemplo, la función no tiene efectos secundarios, al menos no intencionalmente) todavía se considera "no funcional"?
Por ejemplo, en la verificación de estilo del curso "Programación funcional con Scala" se considera que cualquier varuso es malo
Mi pregunta, si la función no tiene efectos secundarios, ¿todavía se desaconseja escribir código de estilo imperativo?
Por ejemplo, en lugar de utilizar la recursión de cola con el patrón del acumulador, ¿qué hay de malo en hacer un bucle local for y crear un mutable localListBuffer y agregarlo, siempre que la entrada no cambie?
Si la respuesta es "sí, siempre se desaniman, incluso si no hay efectos secundarios", ¿cuál es la razón?
varsiempre es no funcional. Scala tiene vals perezosos y optimización de recursión de cola, lo que permite evitar los vars por completo.