sorry for this i mixed up the mailing adresses :D
On Sat, Dec 21, 2013 at 11:04 AM, dimitris chloupis <[email protected]>wrote: > στειλε μου την πάλι στο [email protected] γιατί εδώ μπαίνω πλέον > σπάνια και για κάποιο λόγο δεν μου κατεβάζει το αρχείο σου. Σόρρυ που σε > ξέχασα φιλαράκι αλλά αυτή την εβδομάδα δεν ήμουν και πολύ στα καλά μου. > Στην είπα να την γράψεις έτσι για το τυπικό της υπόθεσης , νομικά δεν > παίζει μεγάλο ρόλο απο την στιγμή που έχουν λάβει γνώση δηλαδή γνωρίζουν > την περίπτωση σου. > > > On Friday, 13 December 2013, 23:29, Tudor Girba <[email protected]> > wrote: > Hi Esteban, > > Indeed, I pondered on the issue of extending Object with the deep* > methods. In the end, I chose to extend it because traversals are not a > cherry on top, they are rather essential for significant analysis. > > From my point of view, Pharo has to become a platform in which > understanding and manipulating objects is an essential concern. The reason > is that in the long run, it is precisely assessment-related activities that > account for the largest development costs. I detailed a bit this idea here: > > http://www.humane-assessment.com/blog/choose-your-technology-for-the-long-run/ > > For this we need a powerful toolkit that makes crafting custom analyses > cheap, and traversals has a prominent place in it. > > Cheers, > Doru > > > > > On Fri, Dec 13, 2013 at 6:17 PM, Esteban A. Maringolo < > [email protected]> wrote: > > To avoid such kind of situations I would implement all the traversal > methods as > a) Traits or > b) Class side methods of DeepTraversal (you choose the name) to which > you'll have to pass the collection and the block. > > E.g. DeepTraversal deep: aCollection do: aBlock > DeepTraversal flatten: aCollection thenDo: aBlock > > I, personally, don't like adding methods to Object unless it's > unavoidable(*). And in those cases I choose to prefix them with > something that is separate from the semantic, usually the > package/framework prefix. > > Regards, > > (*)I did that for years and in the long term it hits you back. > Esteban A. Maringolo > > > 2013/12/13 Chris Cunningham <[email protected]>: > > 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" > > >
