Thinking in LINQ: Harnessing the power of functional programing in .NET applications (2014)