gpt4 book ai didi

list - Haskell游程编码函数

转载 作者:行者123 更新时间:2023-12-01 16:08:41 26 4
gpt4 key购买 nike

此编码函数需要以下输出,代码 "aaccbbaa"= [('a',2),('c',2),('b',2),('a',2)

但是,这是我的输出。代码 "aaccbbaa"= [('a',4),('c',2),('b',2)]

这是我的功能,

code :: Eq a => [a] -> [(a,Int)]
code [] = []
code (x:xs) = [(x, length(filter(==x)(x:xs)))] ++ code(filter (/=x)(xs))

如何让它在下一个字母出现时重新计数?

最佳答案

有一个group Data.List

中的函数
code :: Eq a => [a] -> [(a,Int)]
code = map (\x -> (head x, length x)) . group

λ> code "aaccbbaa"
[('a',2),('c',2),('b',2),('a',2)]

关于list - Haskell游程编码函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43772891/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com