Wow, this is really cool. I missed this while working with PP.

Thanks Chris!

Uko

On 13 Dec 2013, at 18:02, Chris Cunningham <cunningham.cb@gmail.com> 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