我想定义一个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]我知道这将很容易使用‘复制’内置函数,但只允许列表理解,我该怎么做呢?
谢谢!
发布于 2010-05-06 06:50:55
整洁的小问题。我是这样解决的。
replicate list = [ a | a <- list, _ <- [1..a]]Prelude>复制5,1,3,2,8,1,2
5,5,5,5,1,3,3,2,8,8,8,8,8,1,2,2
它获取列表中的每个值,创建其自身的多个副本,然后移动到下一个值。
发布于 2010-05-06 07:02:10
对于踢球:
import Control.Monad
import Control.Monad.Instances
repList = concatMap $ join replicatehttps://stackoverflow.com/questions/2777247
复制相似问题