Ter variáveis locais mutáveis em uma função que é usada apenas internamente (por exemplo, a função não tem efeitos colaterais, pelo menos não intencionalmente) ainda é considerado "não funcional"?
por exemplo, na verificação do estilo do curso "Programação funcional com Scala" considera qualquer var
uso ruim
Minha pergunta, se a função não tiver efeitos colaterais, a escrita de código de estilo imperativo ainda é desencorajada?
por exemplo, em vez de usar recursão de cauda com o padrão de acumulador, o que há de errado em criar um loop for local e criar um mutável localListBuffer
e adicioná-lo, desde que a entrada não seja alterada?
Se a resposta for "sim, eles são sempre desencorajados, mesmo que não haja efeitos colaterais", qual é o motivo?
var
é sempre não funcional. O Scala possui valores preguiçosos e otimização da recursão da cauda, o que permite evitar completamente os vars.