C# 4.0 treats functions as regular objects which enables programmers to use functions as arguments of other functions. Functions those take other functions as arguments are technically called as higher order functions. Functional composition is one such example of higher order functions. Functional composition is a functional programming concept in which two or more functions can be combined to compose a higher order function.
Functional composition is a feature supported as part of functional programming features in C# 4.0. Suppose, say we have two functions represented by generic types: Func which converts type x to type y and Func which converts type y to type z. Then a new function represented by the generic Func can be composed out of two generics to convert type x directly to type z. This is called functional composition.
Code snippet for functional composition (for example described above):