Tag Archives: monads

“LINQ In Breadth” Bart De Smet

[MS Techdays 2009] Summary “LINQ In Breadth” Bart De Smet

Language Integrated Query or LINQ keeps on growing and is providing support for a lot of sources and allowing integration with several languages (see LINQ fan-in and fan-out below).


LINQ brings together some parts introduced in the earlier versions of the .NET Framework like Lamba Expressions, Type Inference and Extension Methods and can be expressed in several syntaxes.

I started off trying to summarize for you everything Bart said but his presentation contained some many things going from Lambda expressions to the mathematical theory of Monads (Category Theory used to explain similarities between query operators like IEnumarble and IQueryable) that I just gave up. Summarizing it would have taken me about fifty pages of text and would probably confuse you more than help you. Moreover, I would have massacred a lot of Bart? ideas.

So I?l just direct you to his blog: http://community.bartdesmet.net/blogs/bart/Default.asp. Just have a look at the posts about Isoteric LINQ bindings, The construction of ExceLINQ and LINQ to Objects Debugging.

His blogs contains a lot of other interesting material if you?e more into the mathematic theories behind software development and programming.

A few highlights from his presentation

The evolution in C#

  • C# 2.0 iterators
    • yield return
    • On-demand fetch
    • E.g. LINQ to Objects
  • C# 3.0 lambdas
    • () => compute
    • On-demand evaluation
    • E.g. TPL futures

Expression translation cheat sheet: