[Haskell-cafe] Variants of a recursive data structure
Bulat Ziganshin
bulat.ziganshin at gmail.com
Thu Aug 3 09:40:11 EDT 2006
Hello Klaus,
Thursday, August 3, 2006, 2:51:01 PM, you wrote:
> data SimpleExp = Num Int | Add SimpleExp SimpleExp
> data LabelledExp = LNum Int String | LAdd LabelledExp LabelledExp String
> The icing on the cake would be if it would also be possible to have a
> function
> unlabel :: LabeledExp -> Exp
> that does *not* need to know about the full structure of expressions.
> So, what options do I have to address this problem in Haskell?
Template Haskell (compile-time code generator) can be used to
automatically generate unlabel and SimpleExp from the LabelledExp
definition. you can also see to other generic programming solutions
which was overviewed in
http://dfa.imn.htwk-leipzig.de/~waldmann/draft/meta-haskell/second.pdf
--
Best regards,
Bulat mailto:Bulat.Ziganshin at gmail.com
More information about the Haskell-Cafe
mailing list