2009/2/10 minh thu <[email protected]>: > 2009/2/10 Joachim Breitner <[email protected]>: >> Hi, >> >> Am Montag, den 09.02.2009, 16:41 -0700 schrieb Luke Palmer: >>> 2009/2/9 Joachim Breitner <[email protected]> >>> Now while this works, and while ST is still somewhat pure, I'm >>> wondering >>> if there is no better way of expressing "This piece of >>> information came >>> from the point in a data structure, so something else can be >>> put here >>> easily". >>> >>> You might want to look into zippers: >>> http://haskell.org/haskellwiki/Zipper >> >> I thought about Zippers, but I understand that they improve _navigating_ >> in a Tree-like structure, or to refrence _one_ position in a tree. >> >> But if I would deconstruct my tree to the list of _all_ locations, with >>> type Loc a = (Tree a, Cxt a) >> and then run my algorithm that returns [(Loc a, Info)], it's still not >> clear to me how I can combine all of these locations to get back my >> original Tree, annotated with the Info returned. > > I guess I just repeat your last praragraph of your original mail but it seems > to me you can mapAccump some 'names' on the tree, process an > association list (or an IntMap) of the (name,log) then map the three > again using the result. > In spirits, it's the same thing than the STRef solution but it seems > cleaner to me.
I forgot to mention you can try to tie the knot too, using the result of the processing in the first mapping (and then you don't need the second one)... _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
