Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Build Status License Pharo version pharo version pharo version

Implements Iterators for Pharo's Collections.


Metacello new
	baseline: 'Iterators';
	repository: 'github://juliendelplanque/Iterators/src';


Checkout the user documentation to get started.

Add Iterators as a dependency of your project

To depend on Iterators v1 major version, insert the following code snippet in your baseline:

	baseline: 'Iterators'
	with: [ spec repository: 'github://juliendelplanque/Iterators:v1.x.x/src'].

To depend on a specific minor / patch version, tweak to v1.x.x fit your needs (for example v1.2.0).

Note: This project use semantic versioning to define the releases. This means that each stable release of the project will be assigned a version number of the form vX.Y.Z.

  • X defines the major version number
  • Y defines the minor version number
  • Z defines the patch version number

When a release contains only bug fixes, the patch number increases. When the release contains new features that are backward compatible, the minor version increases. When the release contains breaking changes, the major version increases.

Thus, it should be safe to depend on a fixed major version and moving minor version of this project.

Load a specific group

It is possible to load only a sub-part of Iterators project. The baseline defines the following groups:

  • kernel : Contains abstract Iterator class a basic iterators.
  • trees : Contains iterators for tree datastructure.
  • decorators : Contains iterators decorators.
  • core : kernel + trees + decorators
  • collections : Contains extension methods on Pharo collections to get an iterator from a collection easily.
  • shell-dsl : Contains the "shell DSL" for chaining iterators.
  • inspector-extensions : Contains extensions to the GT inspector to show understandable views on iterator objects.
  • tests : Contains tests for the library.