我是Haskell的新手。 我想寫一個程序給出一個列表作爲輸入複製列表中的每個元素k次,其中k
=元素在列表中的位置。Haskell程序複製列表中的元素
例如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
。所以我需要一個櫃檯。我如何在那裏使用櫃檯或做其他任何能夠給我元素位置的東西?
或者'replic = zipWith複製[1 .. ]' – hammar
非常感謝@PhilipJF。 – apgp88