in which things are mapped, but also reduced - ein wirklich nettes Beispiel der Agents in Clojure anhand eines Log-Analyzers. Berechnungen werden auf parallele Prozesse verteilt, ein zentraler Prozess liest und verteilt, am Ende wird alles gemerged. Also klassische map/reduce Technik. Schön wäre natürlich noch gewesen wenn das Lesen auch parallelisiert worden wäre, denn auf Plattesystemen mit vielen Spindeln kann paralleles Lesen durchaus schneller sein als sequentielles Lesen (besonders bei gigantischen Filegrößen wie sie von Tim Bray im originalen Problem postuliert wurden). Aber trotzdem nett mal ein kompaktes sinnvolles Beispiel für map/reduce in Clojure zu sehen. Die Sprache gefällt mir immer besser.
|