将字符串转换为由每次运行中的字符及其重复次数组成的对列表
所以我需要将字符串列表转换为 [(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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我建议将其分成更小的部分。首先定义一个函数,它接受单个
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 usemap
to apply it to eachString
in a list.您可以使用
fmap
函数将函数应用于列表中的任何项目。函数
charRepetitions
接受一个列表并使用charRepetition
函数来转换项目。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 thecharRepetition
function to transform an item.