Iterables and Iterators
- Iterable
- objects that can produce an Iterator
- have a .iterator method
- interpolate in list context (except when in scalar container)
- List, Array, LoL
- Iterator
- inherit from Iterable
- objects that perform iteration
- have a .reify method to produce values
- usually wrapped by a List
- ListIter - iterates elements of a List
- MapIter - lazily applies a block to a List
- GatherIter - handles gather/take list generation