Table of Contents
- What is Functional Programming?
- Characteristics of Functional Programming.
- History of Functional Programming.
- Functional Programming Languages.
What is Functional Programming?
Functional programming (also called FP) is a way of thinking about software construction by creating pure functions. It avoid concepts of shared state, mutable data observed in Object Oriented Programming.
Functional languages emphasise on expressions and declarations rather than execution of statements. Therefore, unlike other procedures which depend on a local or global state, value output in FP depends only on the arguments passed to the function. Jekyll requires blog post files to be named according to the following format:
Characteristics of Functional Programming.
- Functional programming method focuses on results, not the process
- Emphasis is on what is to be computed
- Data is immutable
- Functional programming Decompose the problem into ‘functions
- It is built on the concept of mathematical functions which uses conditional expressions and recursion to do perform the calculation
- It does not support iteration like loop statements and conditional statements like If-Else
History of Functional Programming.
- The foundation for Functional Programming is Lambda Calculus. It was developed in the 1930s for the functional application, definition, and recursion
- LISP was the first functional programming language. McCarthy designed it in 1960
- In the late 70’s researchers at the University of Edinburgh defined the ML(Meta Language)
- In the early 80’s Hope language adds algebraic data types for recursion and equational reasoning
- In the year 2004 Innovation of Functional language ‘Scala.’
Functional Programming Languages.
The objective of any FP language is to mimic the mathematical functions. However, the basic process of computation is different in functional programming.
Here, are some most prominent Functional programming languages:
- Haskell
- SML
- Clojure
- Scala
- Erlang
- Clean
- F#
- ML/OCaml Lisp / Scheme
- XSLT
- SQL
- Mathematica