Functional Programming

  • Introduction to functional programming, functions, types, expressions and evaluation, definitions
  • The Haskell programming language and the Hugs programming environment, standard prelude, modules
  • Built-in types, overloading
  • Function definitions, recursion
  • Tuples, lists, strings, polymorphism, list-processing functions
  • Pattern matching, higher order functions
  • Type classes
  • Type checking, type inference
  • Algebraic types, recursive algebraic types
  • Modules and abstract data types
  • Evaluation methods, lazy evaluation, infinite data structures
  • Input/output