Next:
Functional programming in Haskell
Up:
Programming Language Concepts: Lecture
Previous:
Interrupts
 
Contents
Functional programming
Subsections
Functional programming in Haskell
Types
Defining functions in Haskell
Functions as first class objects
Polymorphism
Conditional polymorphism
User defined datatypes
Rewriting as a model of computation
Reduction strategies
Outermost reduction and infinite data structures
The (untyped) lambda calculus
Syntax
Life without types
The rule
Variable capture
Encoding arithmetic
One step reduction
Normal forms
-equivalence
Church-Rosser property
Computability
Recursive functions
Initial functions
Composition
Primitive recursion
Minimalization
Recursive functions
Encoding recursive functions in lambda calculus
Fixed points
From recursive functional definitions to lambda terms
Encoding minimalization
A fixed point combinator
Making sense of terms without normal forms
Introducing types into the lambda calculus
Simply typed lambda calculus
Polymorphic typed calculi
Type inference as equation solving
Unification
A unification algorithm
Type inference with shallow types
Madhavan Mukund 2004-04-29