Comparing C# 2.0's functional capabilities to Haskell/Python is terribly misleading. You can perform functional tasks easily in 3.5 using lambda expressions and built in functional operators such as:
listOfTestObjects.ForEach(x => sOutputDescriptions += "\n" + x.Description());
http://weblogs.asp.net/scottgu/archive/2007/04/08/new-orcas-...