Частота подсчета каждого элемента в списке
Я пытаюсь написать программу, которая будет считать частоту каждого элемента в списке.
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'), (== ', b'), (== ', c')]. Что я ожидаю: если ref = "abc" и target = "aabbaacc", тогда
zipWith($) (map filter ref)(repeat target)
покажет ["aaaa", "bb", "cc"], после чего я смогу использовать длину карты для получения частоты Здесь для фильтрации списка в соответствии с ref i use [(== 'a'), (== ' , б '), (==', с ')]
Я предполагаю, что здесь есть некоторая логическая ошибка [(== 'a'), (== ', b'), (== ', c')] ..