Contagem de frequência de cada elemento em uma lista
Eu tento escrever um programa que contará a freqüência de cada elemento em uma lista.
In: "aabbcabb"
Out: [("a",3),("b",4),("c",1)]
Você pode ver meu código no seguinte link:http://codepad.org/nyIECIT2 Neste código, a saída da função exclusiva seria assim
In: "aabbcabb"
Out: "abc"
Usando a saída do exclusivo, contamos a frequência da lista de alvos. Você pode ver o código aqui também:
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")
Mas no ghci 6.13 outro tipo de erro está mostrando também
Poucos me perguntaram qual é o propósito de usar [(== 'a'), (== ', b'), (== ', c')]. O que eu espero: Se ref = "abc" e target = "aabbaacc" então
zipWith($) (map filter ref)(repeat target)
vai mostrar ["aaaa", "bb", "cc"] então eu posso usar o tamanho do mapa sobre isso para obter a freqüência Aqui para lista de filtragem de acordo com o ref eu uso [(== 'a'), (= = ' , b '), (==', c ')]
Eu assumo que alguns erros lógicos estão [(== 'a'), (== ', b'), (== ', c')] aqui ..