Presentation: "Reducers - A Library and Model for Collection Processing"
Time: Tuesday 12:05 - 13:05
Location: Salon A-B
Both imperative and functional languages have traditionally taken a fundamentally serial approach to collection manipulation and transformation - using iterators, enumerators, lists, sequences, recursion etc. But speed gains in the future are going to come from parallelism. How should basic operations like map and filter be (re)defined such that they are amenable to parallelism? What are the primitives, and how can they be made composable and extensible? How can we take advantage of facilities like Java's Fork/Join framework?
This talk will describe the approach taken in the Clojure reducers library. Along the way we'll touch on higher-order functions, associativity, map/reduce, work-stealing and the fundamental nature of collections.