A programming paradigm is a paradigmatic style of programming (compare with a methodology, which is a paradigmatic style of doing software engineering).
A programming paradigm provides (and determines) the view that the programmer has of the execution of the program.
For instance, in object-oriented programming, programmers can think of a program as a collection of interacting objects, while in functional programming a program can be thought of as a combination of stateless function evaluations.
Functional Programming Paradigm
Functional programming is a programming paradigm that conceives computation as the evaluation of mathematical functions and avoids state and mutable data.
Functional programming emphasizes the application of functions, in contrast with imperative programming, which emphasizes changes in state and the execution of sequential commands.
Functional programming is a style of programming which consists of functions applied to arguments, for example the elements of a list, and to other functions.
Origin of functional Programming
Invented by Alonzo Church in the 1930s
provides a theoretical framework for describing functions and their evaluation.
Though it is a mathematical abstraction rather than a programming language, lambda calculus forms the basis of almost all functional programming languages today.