More complete introduction to map and reduce