Local variable: Difference between revisions

Content deleted Content added
m link to recursive function in CS context
m link to recursive functions in CS context
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 special because in most languages they are stored on the [[call stack]] directly. This means that when a [[Recursion (computer sciecnescience)|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]].
 
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.