Local variable: Difference between revisions

Content deleted Content added
m Robot-assisted disambiguation (you can help!): Haskell programming language
No edit summary
Line 1:
In [[computer science]], a '''local variable''' is a [[variable]] that is given ''local [[scope (programming)|scope]]''. Such variables are accessible only from the [[Subroutine|function]] or [[block]] in which it is declared. Local variables are contrasted with [[global variables]].
 
Local variables are special because in most languages they are [[automatic variable]]s stored on the [[call stack]] directly. This means that when a [[Recursion (computer science)|recursive function]] calls itself, local variables in each instance of the function are given separate memory [[address space]]. Hence variables of this scope can be declared, written to, and read, without any risk of [[Side-effect (computer science)|side-effects]] to processes outside of the block they are declared.
 
Some advocate that all variables should be of local scope to avoid issues with [[Side-effect (computer science)|side-effects]]. In other cases, programming paradigms and languages themselves, such as the [[functional programming]] paradigm and the [[Haskell (programming language)|Haskell]] language require all "variables" (or the closest equivalent under that paradigm to variables) to be of local scope, and the functionality of the program is achieved only by passing local variables from one function to another.
 
==Static local variables==