The Essence of the Iterator Pattern
The Iterator pattern gives a clean interface for element-by-element access to a collection. Imperative iterations using the pattern have two simultaneous aspects: <em>mapping</em> and <em>accumulating</em>. Various existing functional iterations model one or other of these, b...
Հիմնական հեղինակներ: | , |
---|---|
Ձևաչափ: | Journal article |
Հրապարակվել է: |
2009
|
Ամփոփում: | The Iterator pattern gives a clean interface for element-by-element access to a collection. Imperative iterations using the pattern have two simultaneous aspects: <em>mapping</em> and <em>accumulating</em>. Various existing functional iterations model one or other of these, but not both simultaneously. We argue that McBride and Paterson's <em>applicative functors</em>, and in particular the corresponding <em>traverse</em> operator, do exactly this, and therefore capture the essence of the Iterator pattern. We present some axioms for traversal, and illustrate with a simple example, the <em>wordcount</em> problem. |
---|