Частота подсчета каждого элемента в списке
Я пытаюсь написать программу, которая будет считать частоту каждого элемента в списке.
In: "aabbcabb"
Out: [("a",3),("b",4),("c",1)]
Вы можете посмотреть мой код по следующей ссылке:http://codepad.org/nyIECIT2 В этом коде вывод уникальной функции будет таким
In: "aabbcabb"
Out: "abc"
Используя вывод уникальности, мы посчитаем частоту списка целей. Вы также можете увидеть код здесь:
frequencyOfElt xs=ans
where ans=countElt(unique xs) xs
unique []=[]
unique xs=(head xs):(unique (filter((/=)(head xs))xs))
countElt ref target=ans'
where ans'=zip ref lengths
lengths=map length $ zipWith($)(map[(=='a'),(==',b'),(==',c')](filter.(==))ref)(repeat target)
Error:Syntax error in input (unexpected symbol "unique")
Но в ghci 6.13 видны и другие ошибки
Мало кто спросил меня, какова цель использования [(== 'a'), (==», Ь»), (==», С»)]. Что я ожидаю: если ref = "а» и цель = "aabbaacc» затем
zipWith($) (map filter ref)(repeat target)
покажет ["аааа «»бб «»куб.см»] тогда я могу использовать длину карты по этому, чтобы получить частоту Здесь для фильтрации списка в соответствии с ref я использую [(== 'a'), (==», Ь»), (==», С»)]
Я предполагаю, что какая-то логическая ошибка лежит [(== 'a'), (==», Ь»), (==», С»)] Вот..