Purity and Side Effects
There are two terms that you often hear in discussions about functional programming: purity and side effects. Both terms stem from the idea of immutability.
The whole notion of interacting with a system outside the scope of the function you’re in is called a “side effect” - something that happens as a result of your function being invoked. Working with a database, for instance, is referred to as a “necessary side effect” because you’re changing the state of something outside the scope of your function.