Say we have a normal pure function such as

```
function add(a, b) {
  return a + b
}

```

And then we alter it such that it has a side effect

```
function add(a, b) {
  writeToDatabase(Math.random())
  return a + b;
}

```

It's not considered a pure function as far as I know because I often hear people call pure functions "functions without side effects." However, it does behave like a pure function as far as the fact that it will return the same output for the same inputs.

Is there a different name for this type of function, is it unnamed, or is it still actually pure and I'm mistaken about the definition of purity?