When we're talking about different uses of the word "function" in
programming languages, side effects refer to any effect other than
evaluating to some result when applied to some argument. For example,
in languages like C, printf takes some arguments, and returns an int.
When viewed as just a function, that's all there is to it; functions
exist to take arguments and produce return values. But C extends the
definition of a function to include additional effects, like making
"Hello world" appear on a nearby computer screen.
... And here I disagree. If printf, or whatever explodes an atomic
bomb, this is not a "side effect". If a procedure executes such a
statement: "x = x+1", or "a[1]=a[2]", it IS.