Introducing Functional Programming Using C#