首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串的ints列表- haskell?

字符串的ints列表- haskell?
EN

Stack Overflow用户
提问于 2014-02-26 17:19:26
回答 1查看 2.1K关注 0票数 0

我正在尝试获取一个整数列表,并多次重复它们,但在haskell中是一个字符串。预期产出如下:

代码语言:javascript
复制
> nnn [3,1,5] = ["3-3-3","1","5-5-5-5-5"]
> nnn [10,2,4] = ["10-10-10-10-10-10-10-10-10-10","2-2","4-4-4-4"]

现在我觉得我很接近..。但是我不能把一个into列表转换成一个字符串,而且我肯定不知道如何处理连字符。到目前为止,这是我的代码,输出如下:

代码语言:javascript
复制
nnn :: [Int] -> [[Char]]
nnn list = map show (map (\x -> take x $ repeat x) list)

它给了我:

代码语言:javascript
复制
> nnn [3,1,5] = ["[3,3,3]","[1]","[5,5,5,5,5]"]

(我至少快到了!)有人能指给我看正确的方向吗?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-26 17:23:05

在这里,使用单独的函数将数字重复到以连字符分隔的字符串中似乎很有用。首先将数字转换为字符串,然后复制它,然后使用intercalate在每个元素之间插入一个连字符并将它们连接起来:

代码语言:javascript
复制
repeatNumber :: Int -> String
repeatNumber n = intercalate "-" $ replicate n $ show n

然后,nnn又好又简单:

代码语言:javascript
复制
nnn :: [Int] -> [String]
nnn = map repeatNumber

(replicate a btake a $ repeat b)

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22048603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档