Jafar Husain writes about the prettiness of F#'s type inference, but what I really liked in his post was his C# 3.0 implementation for Quick Sort:
1 public static IEnumerable<T> QuickSort<T>(this IEnumerable<T> list)
2 where T : IComparable
3 {
4 if (!list.Any())
5 {
6 return Enumerable.Empty<T>();
7 }
8 var pivot = list.First();
9 var smaller = list.Where(item => item.CompareTo(pivot) <= 0).QuickSort();
10 var larger = list.Where(item => item.CompareTo(pivot) > 0).QuickSort();
11
12 return smaller.Concat(new[]{pivot}).Concat(larger);
13 }
Yes, the F# implementation is more concise, but Jafar really reminded how concise can C# be as well. When I first heard about C# 3.0's var keyword, I belonged to the group that worried about code getting unreadable. Now I've grown to realize that type information can be over-rated. Sometimes it is just irrelevant noise.