将字符串转换为由每次运行中的字符及其重复次数组成的对列表

发布于 2025-01-11 19:29:40 字数 403 浏览 0 评论 0原文

所以我需要将字符串列表转换为 [(Char,Int)]。例如, ["xxxxx","yyy"][('x',5), ('y',3)] 。我能够毫无问题地获取 ('x',5) 部分,但我不确定如何继续到列表的下一个元素。到目前为止,这是我的代码。任何指点都将受到极大的应用。

[(x,y) | let x = head(head(reap xs)), let y =  length(head(reap xs)))]

ps : reap 是一个将字符串转换为重复字符列表的函数。例如 "aaaabbbbccc" -> [“aaaa”,“bbbb”,“bbb”]

So I am required to convert a list of strings to a [(Char,Int)]. So for example, ["xxxxx","yyy"] to [('x',5), ('y',3)] . I am able to get the ('x',5) part without any issues but I am not sure how to move on to the next element of the list. Here is my code so far. Any pointers will be greatly appricated.

[(x,y) | let x = head(head(reap xs)), let y =  length(head(reap xs)))]

p.s : reap is a function that turns a string into a list of repeated characters. For example "aaaabbbbccc" -> ["aaaa","bbbb","bbb"].

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

萌无敌 2025-01-18 19:29:40

我建议将其分成更小的部分。首先定义一个函数,它接受单个 String 并返回一个元组 (Char, Int)。然后,一旦有了这个函数,您就可以使用map将其应用到列表中的每个String

I suggest breaking this into smaller parts. First define a function that takes a single String and returns a tuple (Char, Int). Then once you have this function , you can use map to apply it to each String in a list.

傾旎 2025-01-18 19:29:40

您可以使用 fmap 函数将函数应用于列表中的任何项目。
函数 charRepetitions 接受一个列表并使用 charRepetition 函数来转换项目。

main = do
  _ <- print $ charRepetitions ["xxxxx","yyy"] 
  return ()

charRepetitions :: [String] -> [(Char, Int)]
charRepetitions xs = fmap charRepition xs

charRepetition :: String -> (Char, Int)
charRepetition s = (head s , length s) 

You can use the fmap function which applies a function over or any item in the list.
The function charRepetitions accepts a list and uses the charRepetition function to transform an item.

main = do
  _ <- print $ charRepetitions ["xxxxx","yyy"] 
  return ()

charRepetitions :: [String] -> [(Char, Int)]
charRepetitions xs = fmap charRepition xs

charRepetition :: String -> (Char, Int)
charRepetition s = (head s , length s) 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文