Overview
- What is functional programming?
- Programming with first-class functions?
- Programming with mathematical functions?
- No side-effects (pure FP)
- Same input, same output (deterministic)
- Main means for computation: function application
- What is functional programming
- A style of programming that the basic method of computation is the application of functions to arguments
- What is functional language
- A language that supports and encourages the style of functional programming
Haskell
- Purely functional
- State-of-the-art
Software Crisis
- Cope with size & complexity of modern computer
- Reduce time & cost of program development
- Increase confident in finished work
Functional programming:
- Allows programs to be written at a high-level of abstraction
- Reuse software components
- Encourage the use of formal verification
- Permit rapid prototyping
- Provide powerful problem-solving tools