Sorry for late response. To sum up the discussion: 1. A common parent interface for the Iterator and Iterable which returns Iterator after calls to map etc. 2. Add a few more methods (slice). filter/slice require fixing bug in vala to provide implementation. 3. State explicitly in documentation when does the function finish (I'd be grateful for any help here) Open points: - Name of the parent interface. (Forallable? ;), Foldable?) - Should it be implemented as virtual or abstract methods. As I stated I prefer C#/Haskell approach then Java and I'm inclined toward the virtual methods[1]. - Is there any other useful operations (tee?) - Should tee/unfold go into parent interface or stay in Iterator I hope I will have updated patches to share by the end of weekend. Regards [1] In this particular case when the operation is clearly defined by the default implementation even if it is not necessary the most optimal one.
Attachment:
signature.asc
Description: This is a digitally signed message part