我仍然是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"和递归.在模式匹配中我需要类似的东西.但我想,我觉得太复杂了.有没有人有想法?