La programación imperativa generalmente emplea funciones con efecto secundario para hacer que los programas funcionen, la programación funcional en cambio se caracteriza por minimizar estos efectos.