Functional programming
Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data. It emphasizes the application of functions, in contrast to the imperative programming paradigm, which emphasizes changes in state.
History[edit]
Functional programming has its roots in lambda calculus, a formal system developed in the 1930s to investigate function definition, function application, and recursion. Many functional programming languages can be viewed as elaborations on the lambda calculus. In the 1950s, the first functional programming language, Lisp, was created by John McCarthy at the Massachusetts Institute of Technology (MIT).
Concepts[edit]
Functional programming languages are typically designed around the following key concepts:
First-class and higher-order functions[edit]
In functional programming, functions are first-class citizens, meaning that they can be passed as arguments to other functions, returned as values from other functions, and assigned to variables. Higher-order functions are functions that take other functions as their arguments or return them as results.
Pure functions[edit]
A function is called pure if it always returns the same result given the same arguments (it is deterministic) and does not cause any observable side effects (such as modifying a global object or a variable).
Immutability[edit]
Functional programming languages favor immutable data structures. Once created, data structures are never changed in place. If a change is needed, a new data structure is created instead. This can help avoid issues of data changes in a multi-threaded environment and leads to easier reasoning about program behavior.
Recursion[edit]
Functional languages primarily rely on recursion to perform looping or iterative behavior, as opposed to the typical loop constructs seen in imperative languages.
Lazy evaluation[edit]
Lazy evaluation is an evaluation strategy which delays the evaluation of an expression until its value is actually needed. This can help improve performance and allows the creation of infinite data structures.
Languages[edit]
Some well-known functional programming languages include Haskell, Scheme, Clojure, and Erlang. Each of these languages emphasizes different aspects of functional programming.
Applications[edit]
Functional programming is particularly useful in scenarios where immutability, concurrency, and determinism are important. It is widely used in academic settings and industries such as finance, where precise algorithms are critical. Additionally, functional programming concepts have influenced the development of many modern programming languages, including JavaScript, Python, and Ruby.
See also[edit]
Further reading[edit]
- Structure and Interpretation of Computer Programs
- Purely Functional Data Structures

This article is a computer science stub. You can help WikiMD by expanding it!
Ad. Transform your health with W8MD Weight Loss, Sleep & MedSpa

Tired of being overweight?
Special offer:
Budget GLP-1 weight loss medications
- Semaglutide starting from $29.99/week and up with insurance for visit of $59.99 and up per week self pay.
- Tirzepatide starting from $45.00/week and up (dose dependent) or $69.99/week and up self pay
✔ Same-week appointments, evenings & weekends
Learn more:
- GLP-1 weight loss clinic NYC
- W8MD's NYC medical weight loss
- W8MD Philadelphia GLP-1 shots
- Philadelphia GLP-1 injections
- Affordable GLP-1 shots NYC
- Budget GLP-1 shots
|
WikiMD Medical Encyclopedia |
Medical Disclaimer: WikiMD is for informational purposes only and is not a substitute for professional medical advice. Content may be inaccurate or outdated and should not be used for diagnosis or treatment. Always consult your healthcare provider for medical decisions. Verify information with trusted sources such as CDC.gov and NIH.gov. By using this site, you agree that WikiMD is not liable for any outcomes related to its content. See full disclaimer.
Credits:Most images are courtesy of Wikimedia commons, and templates, categories Wikipedia, licensed under CC BY SA or similar.
Translate this page: - East Asian
中文,
日本,
한국어,
South Asian
हिन्दी,
தமிழ்,
తెలుగు,
Urdu,
ಕನ್ನಡ,
Southeast Asian
Indonesian,
Vietnamese,
Thai,
မြန်မာဘာသာ,
বাংলা
European
español,
Deutsch,
français,
Greek,
português do Brasil,
polski,
română,
русский,
Nederlands,
norsk,
svenska,
suomi,
Italian
Middle Eastern & African
عربى,
Turkish,
Persian,
Hebrew,
Afrikaans,
isiZulu,
Kiswahili,
Other
Bulgarian,
Hungarian,
Czech,
Swedish,
മലയാളം,
मराठी,
ਪੰਜਾਬੀ,
ગુજરાતી,
Portuguese,
Ukrainian