3

In computer science and mathematics, the word idempotent is used to describe a process that can be repeated any number of times, always leading to the same, predictable outcome.

Is there a single word for the similar concept of "having no side effects"? A word to describe a process that can be repeated any number of times without ever changing the state of the world (or system) around it? If I were to fabricate such a word it would be something cumbersome like enviroimpotent.

Such a word would be extremely useful in situations like this question, where there are imprecise and confusing phrases like

A pure function is idempotent and has no side effects...but really it can't have any effect on the state of the system, not just unintended...* continued babbling about semantics *

I imagine usage like

A pocket calculator's arithmetic is ___; using it to estimate how much post-tax money you'll have after winning the lottery will do nothing to improve your odds.

or

A voting booth should operate ____ly. A vote being cast for a candidate that results in that candidate being displayed higher for the next voter would be a severe flaw.

  • 2
    That's what the concept of pure function is. This is needed because in computer science the name function is used for callable pieces of code instead of functions in the mathematical sense. – mama Feb 9 at 15:51
  • Yes it is a necessary concept. The problem is that there isn't a concise way (that I know of) to accurately convey the concept – Indigenuity Feb 9 at 15:56
  • Many pocket calculators' functions aren't pure functions. Press +, 1 and then each time that you press = you add 1 to the number in the screen. The state changes each time, until eventually reaching the terminal state ERROR. – mama Feb 9 at 15:57
  • Perhaps a poor example then. I struggled to find examples without getting too pedantic or deeply involved in the philosophical argument about whether it's even possible to do anything without changing the world in some way. Any physical (and most abstract) actions will have some effect on a system. In the case of the calculator, I tried to emphasize the specific context of affecting an external state, or a real side effect. The voting booth was intended to cover internal state from one moment to the next. – Indigenuity Feb 9 at 16:07
  • The same way that to convey what a function is in mathematics requires giving the full definition. You can only say it with one word, function, when your interlocutor already knows the concept. A concept that took centuries to shape and that even today most calculus books get/use it wrong. – mama Feb 9 at 16:07
1

Is there a single word for the similar concept of "having no side effects"?

nullipotent

In computing, contrast with idempotent:

both refer to the potential result of performing an action on an object multiple times, the difference being that an idempotent action's result would be the same as performing it one time, while the nullipotent action's result would be the same as performing it zero times.

In other words, a nullipotent action has no side effects – performing it multiple times is the same as performing it zero times. An idempotent action has no further side effects after the first time performing it – performing it multiple times is the same as performing it one time.

By the way, I discovered nullipotent while researching idempotent recently. I'm not sure if we have the same understanding of idempotent, but I think nullipotent may be the word you're searching for.

  • 1
    Interesting that it even contrasts with idempotent. I'm not sure it quite gets what I intended to ask, but I think it captures what I ended up asking. – Indigenuity Apr 18 at 18:00
  • 1
    Actually I think nullipotent is exactly the right word; thanks! That explanation strikes me as a bit odd though. It seems to confound side effects and output, calling them both result. The function a + b is idempotent with regard to output. When implemented in code, that code would be nullipotent with regard to side effects. But I think a function can only be nullipotent with regard to output if it has no output. – Indigenuity Apr 18 at 22:17
  • I should have included examples of actions, but I wasn't sure if that was applicable at the time. One example I found of nullipotent: querying a database (when the data remains unchanged, that is). A common example of idempotent: 'stress-pressing' a crosswalk or elevator call button. There are also examples dealing with multiplication found online. I confuse them sometimes, so I'll won't try to recall them. Good luck finding more. TY and good evening. – KannE Apr 18 at 22:53
0

Perhaps the concept you are looking for is decoupled. Try googling “bad code smells”, and you should find a few specific terms that apply to your situation.

0

These are referred to as safe methods in the HTTP wikipedia entry: (https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Safe_methods)

"Some of the methods (for example, GET, HEAD, OPTIONS and TRACE) are, by convention, defined as safe, which means they are intended only for information retrieval and should not change the state of the server. In other words, they should not have side effects..."

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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