As I mentioned before, his API is a particular case of the DeepTraverser and it is covered out of the box with the DeepTraverser implementation.
But, keep in mind that Chris's deepCollect: works only for collections, while mine works for any object as starting point. Also, the DeepTraverser package has 427 lines of code (including comments), so I would say it is not quite that large :). It would be great to have it added to Pharo (actually that was the original intention). Cheers, Doru On Tue, Dec 24, 2013 at 6:26 PM, Stéphane Ducasse <[email protected] > wrote: > Hi chris > > I think that it would be great if: > - your api is compatible with the one of doru > - that we can introduce your extension to Pharo > - keep the package of doru outside because it is larger. > > With such approach we could get a first version with your code and a > larger one with the one of doru and people > would love it on demand. > > Stef > > On 13 Dec 2013, at 18:02, Chris Cunningham <[email protected]> > wrote: > > Hi. > > I was reading with interest the blog post on Traversal-enabled objects ( > http://www.humane-assessment.com/blog/traversal-enabled-pharo-objects ) > when I noticed the method #deepCollect: referenced. Interestingly, I have > a method called #deepCollect: that is use (wtih related methods like > #deepDo: and #deepSelect:). I suspect these uses may be compatible, with > the traveral versions being more generic. > > My set of #deep methods allow arbitrary flattening of collections. The > #flatCollect: suite in Pharo today flattens objects 1 level; the > #deepCollect: flattens the collections as many levels deep as they are > nested. I found this to be a really useful ability when I work with > PetitParser parsings, which tend give back massively nested Arrays by > default. > > If you are interested, it is published at: > http://www.smalltalkhub.com/#!/~cbc/DeepCollection/ . > > -cbc > > > -- www.tudorgirba.com "Every thing has its own flow"
