Functional style immutable collection iterator