This is the second in a series on the basics of functional programming using C#. I explore Higher-Order Functions this time. Higher-Order Functions are functions that themselves take or return functions. Meta-functions, if you like. This is a more code intensive post, that builds on the ideas that I explored last time.