# “Opposite” of idempotent operation?

What is the adjective given to a mathematical operation/expression on a variable whose new value can only be described in terms of that variable's existing value? Sequential operation?

• Example: i = i + 1
• Counter-example: i = 3 + 1

I don't know if what I call a "sequential operation" is semantically opposite to "idempotent" operation/expression but it does seem like it (e.g. the counter-example shown doesn't change value depending on how often you execute it).

Why I'm asking I'm trying to distinguish between functions in my computer program where you need to read the existing value into memory before you can compute the value from those that can be expressed as simple literals. I need to state in my design document that my program must support both cases, and I want to use the mathematically correct term for it. (note it doesn't need to be numerical, it could be string concatenation vs string overwriting).

-
Recursive? Implicit? –  Joshua Pepper Mar 7 at 23:41
Both of those sound correct based on my definitions of those terms and how I've phrased the question. Whether they evoke the intended meaning in my computer program description I'm not so sure. But I will mark the question as correct if you post it as an answer. –  Sridhar-Sarnobat Mar 7 at 23:46
I'm perfectly happy to wait and see if anything more useful comes up in discussion! –  Joshua Pepper Mar 7 at 23:47
Thanks Josh. It's reassuring to know that it's an interesting question such that the answer is not trivial :) –  Sridhar-Sarnobat Mar 7 at 23:49
In a computer speak, the value that can be expressed as simple literals is called constant. –  user58697 Mar 8 at 0:11

"Idempotent" means that repeating the operation doesn't change the outcome. That doesn't mean that it doesn't do changes. I.e., asignment is idempotent (asign 10 five times in a row, the result will always be 10); increment isn't (doing i++ once or twice in C gives different results). Perhaps you mean it has no side effects, or is a "pure" function (each time you call it with the same arguments, the value returned is the same)? Note that e.g. $\sin x$ is pure in this sense (each time you ask for $\sin 1$ you'll get the same result), functions like printf(3) or malloc(3) in C aren't.