C#, LINQ Query Comprehensions and Monads

C# 3.0

  • Microsoft introduced LINQ query comprehensions into C# version 3.0.

  • Many people are mistaken in believing LINQ is about enumerable data structures or SQL queries.

  • These are just monad instances! LINQ query comprehensions are syntactic sugar for working with any monad.

  • What we have called bind, C#/LINQ calls SelectMany and what we have called Transformer, C# calls Func. C# also introduces syntactic sugar for instantiating Func.