What does Expression.Reduce() do?

The document you need to look at is expr-tree-spec.pdf.

This is the specification for the expression trees. Read the “2.2 Reducible Nodes” and “4.3.5 Reduce Method” sections.

Basically, this method is intended for people implementing or porting their dynamic langauges to .NET. So that they can create their own nodes that can “reduce” to standard expression tree nodes and can be compiled. There are some “reducible” nodes in the expression trees API, but I don’t know whether you can get any practical examples (since all standard expression nodes compile anyway, as the end-user you probably do not care whether they are “reduced” behind the scenes or not).

Yes, MSDN documentation is very basic in this area, because the main source of info and docs for language implementers is on GitHub, with the documentation in its own subfolder.

Leave a Comment