Functional programming is a programming paradigm in which it is tried to bind each and everything in pure mathematical functions. It is a declarative type of programming style that focuses on what to solve rather than how to solve. Functional programming paradigm is based on lambda calculus. Instead of statements, functional programming makes use of expressions. Unlike a statement, which is executed to assign variables, evaluation of an expression produces a value.Functional programming is a declarative paradigm because it relies on expressions and declarations rather than statements.Unlike procedures that depend on a local or global state, value outputs in FP depend only on the arguments passed to thefunction. Functional programming consists only of PURE functions. In functional programming, control flow is expressed by combining function calls, rather than by assigning values to variables.