Haskell 创建一个函数,用于计算列表中出现的所有不同单词的计数
因此,我需要创建一个函数,该函数接受包含字符串的列表列表,并返回列表中每个单词的计数。我创建了这个函数,但是我遇到了两个问题,第一个是它没有返回正确的计数,第二个是它返回重复的计数Haskell 创建一个函数,用于计算列表中出现的所有不同单词的计数,haskell,Haskell,因此,我需要创建一个函数,该函数接受包含字符串的列表列表,并返回列表中每个单词的计数。我创建了这个函数,但是我遇到了两个问题,第一个是它没有返回正确的计数,第二个是它返回重复的计数 wordCount [] = [] wordCount ([]:xss) = wordCount xss wordCount ((x:xs):xss) = (x , 1 + length (filter (==x) xs:xss)) : wordCount (xs:xss) 您可以对列表进行压缩以获得一个列表,然
wordCount [] = []
wordCount ([]:xss) = wordCount xss
wordCount ((x:xs):xss) = (x , 1 + length (filter (==x) xs:xss)) : wordCount (xs:xss)
您可以对列表进行压缩以获得一个列表,然后对其进行排序、分组并查找组的长度:
导入数据。列表
字数::(Ord a)=>[[a]]->[(a,Int)]
wordCount=map(\x->(头x,长度x))。小组。分类海螺
如果无法导入内容,则可以自己进行分组
和排序
:
排序:(Ord a)=>[a]->[a]
排序'[]=[]
sort'(x:xs)=sort'left++pivot++sort'right
哪里
左=过滤器(期望的输出是什么?[(“rose”,3),(“a”,3),(“is”,2),(“but”,1),(“so”,1)]忘了提到我不允许进口anything@HasanSaleh我已经编辑了我的答案,以包含一个没有导入的解决方案。
wordCount [["a", "rose", "is", "a", "rose"],["but", "so", "is", "a", "rose"]]
--> [("a",3),("rose",3),("is",3),("a",3),("rose",3),("but",2),("so",2),("is",2),("a",2),("rose",2)]