The side effects was something confused to me when I learned programming languages years ago. I think there is a good explanation about it which is
Let say we have statement like y = f(x) where f is either a function or an object.
- The f is immutable/functional/has no side-effect when, given same x, y will be same no matter what time it is
- The f is mutable/non-functional/has side-effect when, given same x, y may be different if f’s state has changed