Remy notices that I am “linguistically challenged”, or perhaps he meant to say that I should account for alien (use of) English/American vocabulary by injecting more smileys so as to help with distinguishing accidental from intentional fun. I wouldn’t like that as a matter of taste. Instead, I will be working on my “challenge”. Don’t expect to notice improvements too soon, considering my age.
It was also Remy who brought me in touch with Google’s MapReduce. I remember that day very well, not the exact date though, but it must have been in late 2005. Remy was telling me that Google would be using all these funky maps, reduces, and whatever I am daydreaming about at Microsoft. Now, I was not surprised to see that someone is using this old and cool stuff, but I was surprised to see that the referees of that paper had not noticed what sort of terminological bewilderment may be caused by the paper. Perhaps, they had noticed, but they had not taken actions to avoid that generations of young students may start to think that MapReduce’s map and reduce are like a classic functional programmer’s map and reduce. This may lead to filing bugs against the LISP, Scheme, Haskell (and eventually C#) code bases. And it’s us at Microsoft who have to handle a good deal of these vacuous bugs.
Therefore, I decided to skip an invitation for New Year’s Eve (12/31/2005), and sanitize the MapReduce terminology. The result, “Google's MapReduce Programming Model -- Revisited”, is submitted for publication. If you end up noticing any major problems with the draft, please let me know. I don’t want to blame the referees in the end.
Speaking of list catamorphisms (and other such animals), I should also find some time to mumble about LINQ vs. Haskell. I defer this topic. There is a good deal of details in Erik’s recent papers. Most definitely, I would recommend Erik and Brian's paper “XLinq: XML Programming Refactored (The Return Of The Monoids)”.