Courses » Functional Programming in Haskell

Functional Programming in Haskell


Functional programming is an elegant, concise and powerful programming paradigm.This style encourages breaking up programming tasks into logical units that can be easily translated into provably correct code. Haskell brings together the best features of functional programming and is increasingly being used in the industry, both for building rapid prototypes and for actual deployment.

Textbooks and reference material

NPTEL mirror for this course: http://nptel.ac.in/courses/106106137/


Prof.Madhavan Mukund
studied at IIT Bombay (BTech) and Aarhus University (PhD).
He has been a faculty member at Chennai Mathematical Institute since 1992, where he is presently Professor and Dean of Studies. His main research area is formal verification. In addition to the NPTEL MOOC programme, he has been involved in organizing IARCS Instructional Courses for college teachers. He is a member of ACM India‚Äôs Education Board. He has contributed lectures on algorithms to the Massively Empowered Classroom (MEC) project of Microsoft Research and the QEEE programme of MHRD.

Prof.S P Suresh studied at REC Trichy (MCA) and The Institute of Mathematical Sciences (PhD). He has been a faculty member at the Chennai Mathematical Institute since 2004, currently an Associate Professor. His main research interests are logic in computer science, formal methods for security and proof theory.

  1. Introduction to Haskell and the ghci interpreter
  2. Defining functions: guards, pattern matching and recursion
  3. Lists, strings and tuples
  4. Types and polymorphim
  5. Higher order functions on lists: map, filter, list comprehension
  6. Computation as rewriting, lazy evaluation and infinite data structures
  7. Conditional polymorphism and type classes
  8. User defined datatypes: lists, queues, trees
  9. Input/output and the ghc compiler
  10. Arrays