Side effect (computer science)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

A part of a program with a side effect performs a noticeable action other than giving back a value.[1] Examples include showing a picture on a computer screen, or checking what year it is. Code with side effects can be harder to understand without any context, and the order of instructions more important for code with side effects.[2]

In functional programming, programmers try to avoid side effects when they can, so it is easier to prove that a program will always do what it is supposed to. In some functional languages, like Standard ML, Scheme, or Scala, side effects are not restricted, but programmers still try to use them less.[3] In Haskell, actions with side effects must be stated explicitly—this makes it easier to tell what code does or does not have them.[4]

References[change | change source]

  1. "programming languages - What is a "side effect?"". Software Engineering Stack Exchange. Retrieved 2019-05-22.
  2. Hughes, J. (1989-02-01). "Why Functional Programming Matters". The Computer Journal 32 (2): 98–107. doi:10.1093/comjnl/32.2.98. ISSN 0010-4620. http://dx.doi.org/10.1093/comjnl/32.2.98. 
  3. Felleisen, Matthias VerfasserIn. How to design programs an introduction to programming and computing. ISBN 9780262534802. OCLC 989974617.
  4. Jones, Isaac (2006). "Haskell' status report". Proceedings of the 2006 ACM SIGPLAN workshop on Haskell - Haskell '06 (New York, New York, USA: ACM Press). doi:10.1145/1159842.1159860. ISBN 1595934898. http://dx.doi.org/10.1145/1159842.1159860.