我想定义一个函数replicate,仅使用列表理解来按其值复制数字列表,例如:
replicate [5,1,3,2,8,1,2]
output: [5,5,5,5,5,1,3,3,3,2,2,8,8,8,8,8,8,8,8,1,2,2]
我知道这很容易使用“复制”内置函数,但只允许列表理解,我该怎么做?
谢谢!
小问题。我是这样解决的。
replicate list = [ a | a <- list, _ <- [1..a]]
前奏>复制[5,1,3,2,8,1,2]
[5,5,5,5,5,1,3,3,3,2,2,8,8,8,8,8,8,8,8,1,2,2]
它获取列表中的每个值,创建其自身的多个副本, 然后移动到下一个值。
SO是一场狗屎秀。感谢您的搭车。