Professional Documents
Culture Documents
Advanced Programming Language Concepts: Functional Programming (FP) Definition and Origin
Advanced Programming Language Concepts: Functional Programming (FP) Definition and Origin
Concepts
CT006-3-3-APLC and Version VC1
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 2 of 18
Learning Outcomes
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 3 of 18
Key Terms you must be able to use
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 4 of 18
Programming Paradigm
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 5 of 18
Functional Programming Paradigm
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 6 of 18
Functional Programming
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 7 of 18
Functional Programming
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 8 of 18
What is Imperative Programming
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 9 of 18
Origin of functional Programming
• Lambda calculus,
– 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.
• Combinatory logic
– This is an equivalent theoretical foundation, developed by
Moses Schönfinkel and Haskell Curry.
– It was originally developed to achieve a larger goal: a clearer
approach to the foundations of mathematics.
– Combinatory logic, which is commonly perceived as more
abstract than lambda calculus, preceded lambda-calculus in
invention.
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 10 of 18
Origin of functional Programming
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 11 of 18
Origin of functional Programming
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 12 of 18
Origin of functional Programming
• ML programming language
– In the 1970s
– was created by Robin Milner at the University of Edinburgh
• Miranda
– David Turner developed the language at the
University of Kent.
• ML eventually developed into several dialects, the
most common of which are now Objective Caml and
Standard ML.
• The Haskell programming language was released in
the late 1980s in an attempt to gather together many
ideas in functional programming research.
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 13 of 18
What is good about FP
• Brevity
• Ease of understanding
• No core dumps
• Code re-use
• Strong glue
• Powerful abstractions
• Built-in memory management
• Details :
http://www.haskell.org/haskellwiki/Introduction#D
oes_Anyone_Use_Functional_Programming.3F
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 14 of 18
Quick and Review
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 15 of 18
Summary of Main Teaching Points
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 16 of 18
Question and Answer Session
Q&A
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 17 of 18
What we will cover next
CT006-3-3-Advanced Programming Language Concepts Functional Programming: Definition and Origin Slide 18 of 18