John Ky wrote:
Hi,
I've got an object model that I have a difficult time conceptualising
how it
might look like in Haskell:
class Element { }
class Inline : Element { }
class ParentInline : Inline {
List<Inline> children;
}
class Bold : ParentInline { }
class Underline : ParentInline { }
class Link : ParentInline {
String link;
}
class Text : Inline {
String text;
}
class Block : Element { }
class Paragraph : Block {
List<Inline> paragraph;
}
class Heading : Block {
List<Inline> heading;
}
class Document : Element {
List<Block> blocks;
}
How best to represent this OO data model in Haskell?
You could, depending on what you intend to do, model a hierarchical
document type something like this (if I read your model correctly):
type Document = [Block]
data Block = Heading [Inline] | Paragraph [Inline]
data Inline = Text String | ParentInline
data ParentInline = PIL PILType [Inline]
data PILType = Bold | Underline | Link String
Does that fit?
-k
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe