A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z

Functional Programming

Functional programming is a declarative type of programming style that treats computation as the evaluation of mathematical functions.

Concepts of functional programming

Pure functions

A function is considered to be pure, if - it returns the same result when given the same arguments - does not cause any side effects

Recursion

In functional programming, iteration is performed through recursion and not through while / for loops. The result is achieved by letting an operation be repeated until it reaches the base case.

Higher-order functions

Higher-order functions are functions that can either take other functions as arguments or return them as results. Higher-order functions are closely related to first-class functions in that higher-order functions and first-class functions both allow functions as arguments and results of other functions.

Immutability

An immutable object is an object whose state cannot be modified after it is created. In multi-threaded applications, this approach allows for a thread to act on data represented by immutable objects without worrying what other threads are up to.