计算字符串中的出现次数



我是Haskell的新手,遇到了一个问题。问题是,我需要制作一个函数,该函数接收一个字符串并返回元组列表。元组将由(字符,该字符在字符串中出现的次数(组成。

到目前为止,我已经写了这篇文章。

charCountTup :: [Char] -> [(Char,Integer)]
charCountTup xs = map ( x -> (x, 1)) xs

字符串"的输入;你好"会给我

('H',1),('e',1),('l',1),('l',1),('o',1)].

我想要的是

('H',1),('e',1),('l',2),('o',1)]

我现在不想担心大写和小写。有谁更熟悉haskell,对如何根据元组的整数是否出现过一次来增加它有任何想法吗?

有点笨拙。。从技术上讲,它是一个带有"head"的偏函数,但我不认为"group"返回空字符串。我很懒,把你的"Integer"改成了"Int">

import Data.List (group, sort)
xs = "hello world"
count :: String -> [(Char,Int)]
count  xs = 
map (grp -> (head grp, length grp)) (group $ sort xs)

count xs

[('',1(,('d',1(

我刚刚意识到你可以使用列表理解来编写它。。

[(head grp, length grp) | grp <- (group $ sort xs)]

相关内容

  • 没有找到相关文章

最新更新