Intro to functional programming in C#