java implementation of map/select/reduce/fold with generics and lazy evaluation features, using Iterator.