小编Pal*_*Pal的帖子

Haskell - 根据列表索引重复列表的元素

我仍然是Haskell的初学者.我尝试做一些模式匹配.我想重复列表中的每个元素n次.N由列表中每个元素的索引位置确定.比如['1', '2', '3']应该给我:['1', '2', '2', '3', '3', '3'].这是一个练习,我不应该使用prebuild-list-functions.

我试过这样的事情:

test [] = []
test (first:[]) = [first] 
test (first:second:rest) = first : second : test (second:rest)
Run Code Online (Sandbox Code Playgroud)

但它只是在第一个元素后加倍了每个元素.我想到elemIndex并复制但我不应该使用这些功能.我的想法是使用elemIndex并使用它作为我的"n"并使用复制或类似之后的"n"和递归.在模式匹配中我需要类似的东西.但我想,我觉得太复杂了.有没有人有想法?

haskell list replicate

5
推荐指数
1
解决办法
812
查看次数

标签 统计

haskell ×1

list ×1

replicate ×1