On Wed, Aug 21, 2002 at 04:44:03PM +0930, Dr Mark H Phillips wrote:
I would like to represent this structure in Haskell, but am not sure quite the best way of doing it. (I am relatively new to Haskell.) I think I want to do something like:
[ [(2,5),[(1,3),[(2,0)]], [(1,2),[(1,1),[(1,0)]]], [(3,1)]], [(1,5),[(2,4),[(2,0)]], [(1,4),[(1,3),[(1,1),[(1,0)]]], [(2,2),[(1,0)]], [(1,2),[(2,1)]]], [(2,3),[(1,2),[(1,0)]], [(2,1)]], [(1,3),[(2,2),[(1,1)]]], [(4,2)]] ]
But what is the best way to represent this in Haskell? (Clearly I can't do exactly this, because Haskell requires all list elements to be of the same type.)
This kind of lists do not have a concrete type, therefore cannot be represented in Haskell. I'd suggest you try a tree structure for your data. Something like a Left and Right branch, Left branch goes down to another row of the same level, Right branch goes to to right column. Regards, .paul.