.NET has included monadic map functionality since the release of LINQ in .NET 3.5. You may know this by the extension method on IEnumerable<T>, Select. This allows you to project from one sequence to another. However, that’s as far as it went. Applying a map on multiple lists was not available in the core framework. That has changed in .NET 4 with the new Zip method.