我是 Haskell 的新手。我正在尝试编写一个程序,该程序将列表作为输入复制列表中的每个元素 k 次,其中k
= 列表中元素的位置。
例如replic[5,6,7]
给[[5],[6,6],[7,7,7]]
.
另一个条件是解决方案必须使用map
函数。
到现在我写的代码是:
replic [] = []
replic (x:xs) = map (replicate 2 ) [x] ++ replic xs
这会将每个元素复制两次,因为复制具有输入参数2
。
我需要的是replicate
函数应该像1 ,2 ,3
连续调用一样被输入。所以我需要一个柜台。我怎样才能在那里使用计数器或做任何其他可以给我元素位置的事情?