z
Common Programming
Paradigms
with emphasis on Functional Paradigm
z
Flow of Session
 Common Programming paradigms
 Examples
 What's functional programming
 Principles + Examples
 Summary
z
Purpose of Learning?
z
Common Programming Paradigms
z
Common Programming Paradigm
Imperative Programming  Instructions
 Sequence
 How to do
z
Common Programming Paradigm
Structured Programming  Loops
 Conditions
 Code Blocks
 Sub routines
 Data definition
z
Common Programming Paradigm
Object Oreinted Programming
Data + Functions = Object
z
Common Programming Paradigm
Functional Programming
 Expressions = values
 Pure functions
 Immutable data
z
Common Programming Paradigm
Logic Programming
 Facts
 Rules
 Deduce results (deductions)
z
Common Programming Paradigm
Set Programming
 Define Set
 Define predicate
 Define result
z
Common Programming Paradigm
Non deterministic Programming
 Checkpoints
 Choices
 Backtracking / Remember
z
Functional Programming Principles
z
What is Functional Programming
Immutable Data
 Treated as a Value
 Once declared cannot be modified
z
What is Functional Programming
Pure Functions
 Output is deterministic based on Input
 Zero side effects
z
What is Functional Programming
Recursion
 Define the base case solution
 Break the large set into smaller set
 Apply solution
z
What is Functional Programming
List Manupulation
 list of values
 Pure function to operate on a single item
 New list with resultant values
z
What is Functional Programming
Lazy Evaluation
 Definition to get the next member
 Definition is only evaluated on demand only
z
What is Functional Programming
First Class Functions
 Functions is teated as data
 Assigned to variables
 Arguments of functions
 Return values of functions
z
What is Functional Programming
Higher Order Functions
 Takes one or more functions as argument
 Return value can be a function
z
Summary
 Imperative Programing
 Structured, OO
 Declarative
 Functional, Set based, Logic Based
 Non-Deterministic
 Functional Programming
 Immutable data
 First class, Pure & Higher order functions
 List manupulation
z

Common Programming Paradigms