复制Haskell列表中的每个元素

Nob*_*bre 2 haskell

by functions如何复制列表的每个元素两次.例如,重复[1,3,5]应该返回[1,1,3,3,5,5]

并用列表中的其他元素替换元素.例如,替换3 30 [1, 3 ,4 ,5, 3, 4]应返回[1, 30, 4, 5, 30, 4]

我在Haskell很新,需要今天提交作业.

任何帮助将不胜感激 !

OJ.*_*OJ. 11

映射元素并复制它们.然后结合结果:

concatMap (replicate 2) [1,3,5]
Run Code Online (Sandbox Code Playgroud)

对于第二个问题,请看 Data.List.Utils

replace [3] [30] [1,3,4,5,3,4]
Run Code Online (Sandbox Code Playgroud)


小智 8

duplicateEach  = (>>= replicate 2)
duplicateEach2 = concatMap (replicate 2)
duplicateEach3 xs = [ y | x <- xs, y<-[x,x] ]

import Data.List.Split

replaceOne f t xs = [ y | x<-xs, let y = if x==f then t else x]

replaceSublist f t = intercalate t . sepBy f   -- f and t is lists
Run Code Online (Sandbox Code Playgroud)

  • 来吧,不要为他们做人们的功课. (22认同)
  • @luqui我发现这有用多年后 - 一个人的作业是另一个人的......不是家庭作业? (10认同)