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
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
Functional programming languages are typically designed around the following key concepts:
First-class and higher-order functions
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
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
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
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
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
Some well-known functional programming languages include Haskell, Scheme, Clojure, and Erlang. Each of these languages emphasizes different aspects of functional programming.
Applications
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
Further reading
- 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 life with W8MD's Budget GLP-1 injections from $29.99


W8MD offers a medical weight loss programs including NYC medical weight loss and Philadelphia medical weight loss offering:
- Budget GLP1 shots (generic and brand names) such as
- Learn more: Budget GLP1 weight loss injections NYC & Philadelphia GLP1 weight loss shots
- Most insurances accepted
- Budget GLP1 weight loss injections such as Semaglutide starting from $29.99/week and $45.00/week (Tirzepatide) with insurance.
NYC weight loss doctor appointmentsNYC weight loss doctor appointments
Start your NYC weight loss journey today at our:
- Call 718-946-5500 for NYC or 215-676-2334 for Philadelphia
- Tags:
GLP1 weight loss doctor NYC, Zepbound NYC, Budget GLP1 weight loss injections, Philadelphia medical weight loss, Wegovy NYC, Brooklyn weight loss, Wegovy NYC, Budget GLP1 shots NYC
|
WikiMD's Wellness Encyclopedia |
| Let Food Be Thy Medicine Medicine Thy Food - Hippocrates |
Medical Disclaimer: WikiMD is not a substitute for professional medical advice. The information on WikiMD is provided as an information resource only, may be incorrect, outdated or misleading, and is not to be used or relied on for any diagnostic or treatment purposes. Please consult your health care provider before making any healthcare decisions or for guidance about a specific medical condition. WikiMD expressly disclaims responsibility, and shall have no liability, for any damages, loss, injury, or liability whatsoever suffered as a result of your reliance on the information contained in this site. By visiting this site you agree to the foregoing terms and conditions, which may from time to time be changed or supplemented by WikiMD. If you do not agree to the foregoing terms and conditions, you should not enter or use this site. 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