This document discusses lambda expressions in C#. It introduces lambda expressions as anonymous inline functions that can be used wherever delegates are required. It covers the evolution of delegates from named methods to anonymous methods to lambda expressions. It also discusses how lambda expressions can be used as generic delegates like Action, Func and Predicate. Finally, it discusses how lambda expressions are executed when called, not when constructed, and how they can be used as callbacks by passing a function as a parameter to another function.