Functional programming is about how to model problems, not about what programming language you use. Most modern programming languages have taken inspiration from the functional programming paradigm and have implemented features for making functional modelling easier.
To be able to fully leverage the power of languages such as C#, it is therefore necessary to have an understanding of functional programming as well as other paradigms such as object orientation. This presentation gives an introduction to Haskell and compares it to the features provided in C# that have been influenced by concepts from the functional world. In particular, it aims to illustrate how a functional approach to solving problems differs from an object oriented approach.
This presentation assumes no previous experience of functional programming. In fact, its intended target audience is software developers who have been working with imperative or object oriented programming, but never had the opportunity to investigate what functional programming is all about.