Um efeito colateral na programação ocorre quando a execução de uma função resulta em outra coisa acontecendo além de executar estritamente a função e receber a saída padrão. Isso pode significar que o valor de uma variável muda enquanto é calculado em uma função. Linguagens de programação declarativas raramente têm efeitos colaterais; o código é direto e não detalha todas as etapas necessárias para concluir uma função. Se os objetos que eles usam forem imutáveis, o que na programação declarativa normalmente são, as funções se comportarão da mesma forma cada vez que forem executadas, sem ter efeitos colaterais em outra parte do programa.
Um efeito colateral geralmente altera o estado do próprio programa, não apenas a área local em que aparece. Isso às vezes é conhecido como uma mudança “global”, quando altera os valores das variáveis fora da área local daquela função específica. Obviamente, para que um aplicativo ou programa de computador funcione, ele precisa permitir modificações por meio de efeitos colaterais: às vezes, as saídas devem mudar. E os bancos de dados terão muitos efeitos colaterais, pois os dados mudam e sofrem mutações. Mas também há benefícios na programação puramente funcional.
A programação funcional, que evita efeitos colaterais, é mais fácil de ler e analisar para os desenvolvedores. As funções puras (que não têm efeitos colaterais) executam o mesmo cálculo cada vez que são repetidas, sem variação ou efeito colateral. Evitar efeitos colaterais em um programa o torna mais legível e confiável.