Author 
Message 
Sam #1 / 7

small hugs problem
I've come across a problem which I know I could solve easily using a normal language but I'm stumped doing it in haskell. I need to take a list and produce a list of pairs which contain the element and how many times the element appears e.g. ['a','a','b','a','b','b','a'] > [('a',4), ('b',2)] I have a solution but it's pretty messy  does anyone have an elegant solution? Thanks Sam

Sat, 03 Feb 2001 03:00:00 GMT 


Dirk van De #2 / 7

small hugs problem
: ['a','a','b','a','b','b','a'] > [('a',4), ('b',2)] : I have a solution but it's pretty messy  does anyone have an elegant : solution? Always check the standard libaries to see if they don't contain partial solutions... import List compact :: Ord a => [a] > [(a,Int)]
Dirk van Deun 
 Knight of the Order of the Command Line  http://knights.rave.org

Sat, 03 Feb 2001 03:00:00 GMT 


Ketil Z Mald #3 / 7

small hugs problem
Quote:
> I need to take a list and produce a list of pairs which contain the element > and how many times the element appears > ['a','a','b','a','b','b','a'] > [('a',4), ('b',2)] > I have a solution but it's pretty messy  does anyone have an elegant > solution?
Use an Array defined over the type of the first element and containing integers? The problem becomes ignoring all the unset array elements efficiently, I guess. ~kzm  If I haven't seen further, it is by standing in the footprints of giants

Sat, 03 Feb 2001 03:00:00 GMT 


Dr Richard A. O'Keef #4 / 7

small hugs problem
Quote:
> I need to take a list and produce a list of pairs which contain the element > and how many times the element appears
Sort, partition, count.

Sun, 04 Feb 2001 03:00:00 GMT 


Sam #5 / 7

small hugs problem
Thanks for the help  this is the solution I'm using. Quote: > import List > compact :: Ord a => [a] > [(a,Int)] > compact list = [ (head x,length (x))  x<((group.sort) list) ] >I need to take a list and produce a list of pairs which contain the element >and how many times the element appears >e.g. >['a','a','b','a','b','b','a'] > [('a',4), ('b',2)]

Wed, 07 Feb 2001 03:00:00 GMT 


Randy MacDona #6 / 7

small hugs problem
Quote:
>> I need to take a list and produce a list of pairs which contain the element >> and how many times the element appears >> ['a','a','b','a','b','b','a'] > [('a',4), ('b',2)] >> I have a solution but it's pretty messy  does anyone have an elegant >> solution? >Use an Array defined over the type of the first element and containing >integers? The problem becomes ignoring all the unset array elements >efficiently, I guess.
to do this in J, one does: x =. 'aababba'
+++ ++++++ a4b3 ++++++ +++ (for more J info, see http://www.jsoftware.com )

Sat, 10 Feb 2001 03:00:00 GMT 


Randy MacDona #7 / 7

small hugs problem
Quote:
>> I need to take a list and produce a list of pairs which contain the element >> and how many times the element appears >Sort, partition, count.
doesn't this only give the counts. How is the actual unique element included?

Sat, 10 Feb 2001 03:00:00 GMT 


