0% found this document useful (0 votes)
39 views16 pages

Functional Programmings

Uploaded by

muhazamali0
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views16 pages

Functional Programmings

Uploaded by

muhazamali0
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 16

Functional

Programming
• What is functional programming?
• Characteristics of functional Programming
• History of Functional programming
• Functional Programming Languages
• Basic Functional Programming Terminology and Concepts
• The benefits of functional programming
• Limitations of Functional Programming
• Functional Programming vs. Object-oriented Programming
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 emphasis 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.
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 • F#
• Clean • XSLT
• SQL • Mathematica
• ML/OCaml Lisp / Scheme
Basic Functional Programming Terminology and
Concepts
Immutable Data
• Immutable Data means that you should easily able to create data
structures instead of modifying ones which is already exist.
Referential transparency
• Functional programs should perform operations just like as if it is for
the first time. So, you will know what may or may not have happened
during the program’s execution, and its side effects. In FP term it is
called Referential transparency.
Modularity
• Modular design increases productivity. Small modules can be coded quickly and have a
greater chance of re-use which surely leads to faster development of programs. Apart
from it, the modules can be tested separately which helps you to reduce the time spent
on unit testing and debugging.
Maintainability
• Maintainability is a simple term which means FP programming is easier to maintain as
you don’t need to worry about accidentally changing anything outside the given
function.
• First-class function
• ‘First-class function’ is a definition, attributed to programming language entities that
have no restriction on their use. Therefore, first-class functions can appear anywhere in
the program.
Closure
• The closure is an inner function which can access variables of parent function’s, even
after the parent function has executed.
Higher-order functions
• Higher-order functions either take other functions as arguments or return them
as results.
• Higher-order functions allow partial applications or currying. This technique
applies a function to its arguments one at a time, as each application returning a
new function which accepts the next argument.
Pure function
• A ‘Pure function’ is a function whose inputs are declared as inputs and none of
them should be hidden. The outputs are also declared as outputs.
• Pure functions act on their parameters. It is not efficient if not returning anything.
Moreover, it offers the same output for the given parameters
• Example
Impure functions
• Impure functions exactly in the opposite of pure. They have hidden
inputs or output; it is called impure. Impure functions cannot be used
or tested in isolation as they have dependencies.
• Example
Function Composition
• Function composition is combining 2 or more functions to make a new
one.
Shared States
• Shared states is an importance concept in OOP programming.
Basically, It’s adding properties to objects. For example, if a HardDisk is
an Object, Storage Capacity and Disk Size can be added as properties.
Side Effects
• Side effects are any state changes which occur outside of a called
function. The biggest goal of any FP programming language is to
minimize side effects, by separating them from the rest of the
software code. In FP programming It is vital to take away side effects
from the rest of your programming logic.
The benefits of functional programming

• Allows you to avoid confusing problems and errors in the code


• Easier to test and execute Unit testing and debug FP Code.
• Parallel processing and concurrency
• Hot code deployment and fault tolerance
• Offers better modularity with a shorter code
• Increased productivity of the developer
• Supports Nested Functions
• Functional Constructs like Lazy Map & Lists, etc.
• Allows effective use of Lambda Calculus
Limitations of Functional Programming

• Functional programming paradigm is not easy, so it is difficult to


understand for the beginner
• Hard to maintain as many objects evolve during the coding
• Needs lots of mocking and extensive environmental setup
• Re-use is very complicated and needs constantly refactoring
• Objects may not represent the problem correctly
Functional Programming vs. Object-oriented
Programming
Conclusion
• Functional programming or FP is a way of thinking about software
construction based on some fundamental defining principles
• Functional programming concepts focuses on results, not the process
• The objective of any FP language is to mimic the mathematical functions
• Some most prominent Functional programming languages: 1)Haskell 2)SML
3) Clojure 4) Scala 5) Erlang 6) Clean
• A ‘Pure function’ is a function whose inputs are declared as inputs and none
of them should be hidden. The outputs are also declared as outputs.
• Immutable Data means that you should easily able to create data structures
instead of modifying ones which is already exist
• Allows you to avoid confusing problems and errors in the code
• Functional code is not easy, so it is difficult to understand for the beginner
• FP uses Immutable data while OOP uses Mutable data

You might also like