Why not Smalltalk style? employees do: [:employee | employee doSomething] managers := employees select: [:employee | employee isManager] offices := employees collect: [:employee | employee office ] sortedEmployees := employees sort: [:a :b | a lastname < b lastname]