Note that data-reify will only find *some* common/equal sub-expressions,
namely the pointer-equal ones. In all of my code-generating ("deep") DSLs,
it's been very important for efficiency to also pull out
equal-but-pointer-unequal expressions.- Conal On Thu, Aug 11, 2011 at 4:41 AM, Vo Minh Thu <[email protected]> wrote: > I guess you refer to data-reify: > http://hackage.haskell.org/package/data-reify > > 2011/8/11 Stephen Tetley <[email protected]>: > > Strafunski and its successors (Uniplate, SYB, KURE) are really for > > working on trees. If you want to work on graphs you would probably be > > better of with something else. > > > > I think I overlooked that you want common sub-expression > > _elimination_, rather than expression simplification. There are > > libraries for observable sharing (Andy Gill's recent one is the > > state-of-the-art, its on Hackage but I've forgotten its name) - that > > are pertinent where you have built the expressions as an embedded DSL > > in Haskell and you want sharing in code you generate from the Haskell > > DSL. > > > > > > > > On 11 August 2011 08:57, Anton Kholomiov <[email protected]> > wrote: > >> Thank you for the reference to Strafunski libraries, I read > >> HaskellWiki, but I don't have a permission to visit their site. > >> All links are forbidden. > >> > >> Can it be a function: > >> > >> fun :: Eq a => Tree a -> [(Int, (a, [Int]))] > >> > >> where tuple codes nodes, and Int's code edges. > >> > >> 2011/8/11 Stephen Tetley <[email protected]> > >>> > >>> Wouldn't this be dependent upon your AST and thus not readily > >>> "package-able" as a library? > >>> > >>> Expression simplification has been a prime example for Strafunski > >>> style traversal libraries. You might be able to find examples that you > >>> can adapt to your own AST written with Uniplate or similar library. > >>> > >>> On 11 August 2011 05:00, Anton Kholomiov <[email protected]> > >>> wrote: > >>> > Is there a library on common sub-expression elimination? > >>> > > >>> > >>> _______________________________________________ > >>> Haskell-Cafe mailing list > >>> [email protected] > >>> http://www.haskell.org/mailman/listinfo/haskell-cafe > >> > >> > >> _______________________________________________ > >> Haskell-Cafe mailing list > >> [email protected] > >> http://www.haskell.org/mailman/listinfo/haskell-cafe > >> > >> > > > > _______________________________________________ > > Haskell-Cafe mailing list > > [email protected] > > http://www.haskell.org/mailman/listinfo/haskell-cafe > > > > _______________________________________________ > Haskell-Cafe mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/haskell-cafe >
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
