Por ejemplo, una función puede modificar una variable global o estática, modificar uno de sus argumentos, escribir datos a la pantalla o a un archivo, o leer datos de otras funciones que tienen efecto secundario.
En el diseño de CPU las instrucciones con efecto colateral son aquellas instrucciones que modifican valores internos del CPU de forma no explícita - de hecho, la instrucción ADD puede o no modificar otros registros (carry, zero, overflow, etc).
Esto causa un problema cuando se diseña un CPU que usa "pipeline" de instrucciones y soporta instrucciones con efecto colateral.
Se debe prestar especial cuidado para evitar este riesgo.
Que una función no tenga efecto secundario o colateral es una condición necesaria pero no suficiente para que sea transparente referencialmente.