14 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			14 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: What Is a Function | ||
|  | --- | ||
|  | ## What Is a Function
 | ||
|  | 
 | ||
|  | A function is mathematically defined as a mapping of one set of numbers to another. For example `f(x) = x*2.` Any given input from some set (called the domain) always gives one specific output from the range. In the doubling function the inputs 1,3,and 5 map to the numbers 2,6, and 10 in the range, which is also the set of all real numbers. | ||
|  | 
 | ||
|  | In contrast, a "function" in programming (more accurately called a method or subroutine in some languages) is a method that takes one or more values and outputs one or more outputs. There is generally no guarantee that some internal state (such as a global variable) could change in such a way that f(2) could be 5 at one time, or 10 when you run it again. In most languages that is permitted, even expected in some cases, but some languages using *functional programming* define functions as functions mathematically in that there are no state variables that can change and have inconsistencies, thereby giving more "provably correct" code. | ||
|  | 
 | ||
|  | #### More Information:
 | ||
|  | Functional languages: [Haskell](http://learnyouahaskell.com/chapters), [Clojure](https://clojure.org/) | ||
|  | 
 | ||
|  | 
 |