Number of occurrences in a list
Jag ska skapa en funktion i haskell som räknar hur många gånger ett element uppstår i en lista. Det som ska returneras är själva elementet och siffran bredvid som står för hur många gånger elementet förekom. Ett exempel är pairsCount [("hello","me"),("me","hello"),("yes","no")]. Då blir svaret [(("hello","me"),2), (("yes","no"),1)].
Jag tänker att man skapa två funktioner. Den ena räknar och den andra tar bort samma element (ifall det upprepas) och samtidigt returnerar listan med elementen och siffran.
Jag kan inte Haskell men rent generellt: Om du kan använda en Hashmap där det ordnade Pair:et är nyckeln och antal är värdet räcker det med att loopa igenom, vända på paret om de inte står i bokstavsordning, skapa/hämta räknaren för Pair-nyckeln och inkrementera den (och stoppa tillbaka det uppdaterade värdet).
Har du inget snabbt uppslag av vilka par du redan har (som en hashmap) riskerar du att loopa resultatlistan för varje element i inlistan. Det blir dyrt när listan är lång eftersom som antalet varv växer kvadratiskt. Men kan fungera som en första version.