Functional Programming Definition & Meaning
Functional programming is the process of constructing programs by applying and composing pure functions, avoiding shared state, mutable data, and side effects. It is a declarative programming paradigm, meaning it's focused on what to solve. It contrasts with the imperative programming style, such as object oriented programming, in which the focus is on how to solve. Functional programming uses expressions instead of statements, meaning that an expression is evaluated to produce a value.
Concepts of Functional programming
Many concepts are specific to functional programming. Some include:
Pure functions have two main properties: They always produce the same output given the same input, and they have no side effects. Because of these properties, there are many benefits of pure functions. If the result of a pure expression is not used, it can be removed without affecting other expressions. If there is no data dependency between two pure expressions, their order can be reversed, or they can be performed in parallel so they do not interfere with each other.
Pure functions are easy to understand because they don't change any states and depend only on the input given to them.
Iteration, also known as looping, in functional languages is implemented through recursion. There are no "for" or "while" loops in functional languages. Recursive functions invoke themselves, meaning an operation can be repeated until it reaches the base case.
First-class and higher-order
First-class functions are treated as first-class variables, which can be passed to functions as parameters, returned from functions, or stored in data structures. Higher-order functions are functions that can either take other functions as arguments or return them as results. Higher-order functions are related to first-class functions because both allow functions as arguments and results of other functions.
Stay up to date on the latest developments in Internet terminology with a free newsletter from Webopedia. Join to subscribe now.
From A3 to ZZZ we list 1,559 text message and online chat abbreviations to help you translate and understand today's texting lingo. Includes Top... Read More »Huge List of Computer Certifications
Have you heard about a computer certification program but can't figure out if it's right for you? Use this handy list to help you decide. Read More »
Computer architecture provides an introduction to system design basics for most computer science students. Read More »Network Fundamentals Study Guide
Networking fundamentals teaches the building blocks of modern network design. Learn different types of networks, concepts, architecture and... Read More »The Five Generations of Computers
Learn about each of the five generations of computers and major technology developments that have led to the computing devices that we use... Read More »