Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

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).

share|improve this question
Recursive? Implicit? –  Joshua Pepper Mar 7 '14 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 '14 at 23:46
I'm perfectly happy to wait and see if anything more useful comes up in discussion! –  Joshua Pepper Mar 7 '14 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 '14 at 23:49
In a computer speak, the value that can be expressed as simple literals is called constant. –  user58697 Mar 8 '14 at 0:11

1 Answer 1

up vote 1 down vote accepted

"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.

share|improve this answer
Interesting - 'pure function' is probably the mathematical term I am hovering around without knowing it. The only remaining question is - what would you call the right hand side of a pure function? A pure expression? How would I write this sentence (it's related to database updates): "If you are assigning a pure expression to the cell, call methodA(). If you are assigning an impure expression to the cell, call methodB()" –  Sridhar-Sarnobat Mar 8 '14 at 0:31
I plead ignorance... ask a couple of people into databases, perhaps check at DBA.stackexchange.com or stackoverflow.com? –  vonbrand Mar 8 '14 at 0:48
Thanks Vonbrand. –  Sridhar-Sarnobat Mar 8 '14 at 0:53

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.