Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Side effect (computer science)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Idempotence == {{Main|Idempotence#Computer science meaning}} A [[subroutine]] with side effects is idempotent if multiple applications of the subroutine have the same effect on the system state as a single application, in other words if the function from the system state space to itself associated with the subroutine is idempotent in the [[Idempotence#Definition|mathematical sense]]. For instance, consider the following [[Python (programming language)|Python]] program: <syntaxhighlight lang="python"> x = 0 def setx(n): global x x = n setx(3) assert x == 3 setx(3) assert x == 3 </syntaxhighlight> <code>setx</code> is idempotent because the second application of <code>setx</code> to 3 has the same effect on the system state as the first application: <code>x</code> was already set to 3 after the first application, and it is still set to 3 after the second application. A [[pure function]] is idempotent if it is idempotent in the [[idempotence#Definition|mathematical sense]]. For instance, consider the following Python program: <syntaxhighlight lang="python"> def abs(n): return -n if n < 0 else n assert abs(abs(-3)) == abs(-3) </syntaxhighlight> <code>abs</code> is idempotent because the second application of <code>abs</code> to the return value of the first application to -3 returns the same value as the first application to -3.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)