Functional programming basics
  • Introducing functional programming
  • Introducing functional programming
  • Correctness follows from expressiveness
  • Type annotations
  • Type annotations
  • Advantages of certain restrictions
Developing functional solutions
  • Programming challenge: Parse and product
  • Lambdas and closures
  • Lambdas and closures
  • Programming challenge: Longest edge of polygon
  • The problem with comments
  • High-level expressiveness and concise code
  • Currying and partial function application
  • Forward application
  • Programming challenge: An SQL analogy
  • Function composition
  • Programming challenge: Interacting with the command line
Thinking functionally
  • Structuring your project cleanly
  • Memoization
  • Monoids
  • Error handling
  • Functors
  • Monads
Functional C++ in everyday usage
  • Refactoring
  • Testing
  • Performance and profiling
  • Multithreading
  • OOP Design patterns vanishing
  • Libraries
  • Outlook and conclusion