On Mon, 15 Oct 2007, Ryan Bloor wrote:
Hi, its Ryan here...
I've just come from an intensive course in java and have been thrown into the imperative world of haskell.
The problem that I have is extremely simple in java but I am having trouble adjusting my old mindset.
A multiset is a collection of items. Each item may occur one or more times in the multiset. All items are of the same type.
The scenario we could use is a students' grades for their A levels: 3A, 4B and 2C grades for our pupil 'x'.
A multiset may be implemented by a list... so ['A', 'A', 'A', 'B', 'B', 'B', 'B, 'C', 'C'] but this very ineffiecient and tedious.
You might model it using Map Char Int which maps each multiset element to its multiplicity. Maybe 'Char' is not the appropriate type, but an enumeration? data Grade = A | B | C | D | E deriving (Show, Eq, Ord) then use 'Map Grade Int'