# Iterator power A collection of examples to demonstrate the power of iterators for Go developers who could not create their own iterators to use `for/range` until Go 1.23 (2024-08-13). Many of the examples are inspired by Python built-in generators and those from the [itertools](https://docs.python.org/3/library/itertools.html) standard package (which in turn are inspired by functions from Haskell, Standard ML, or APL). ## References * Posts by John Arundel: * [Iterators in Go (sales pitch)](https://berenice.eomail4.com/web-version?ep=2&lc=ac1e2800-ba08-11ee-8f15-f36e59c68448&p=85f4bce6-9857-11f0-a420-5597ac4fb528&pt=journey&t=1780305900&s=e03fdd39a0fef3824a1e46cb0abdb1a3b88b0bbe5765a54b70ce1081a2d1d516) * [Iterators in Go](https://bitfieldconsulting.com/posts/iterators): the iter package and new stdlib APIs * [Go evolves in the wrong direction](https://itnext.io/go-evolves-in-the-wrong-direction-7dfda8a1a620) a critique of iterators. * Packages * [iter](https://pkg.go.dev/iter): standard library package providing basic definitions and operations for iterators over sequences. * [go-seq](https://github.com/sectrean/go-seq): functions to transform, filter, collect, and reduce sequences. * [Seq](https://github.com/jsouthworth/seq): lazy sequence library for go, inspired by Clojure's sequence functions.