Func creates an executable function.
Expression> creates an expression tree that allows you to work with the code in the function as data.
Expression Trees allow you to do things like LINQ to SQL and LINQ to XML by generating the underlying calls from your .NET code.