首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何解决这个Haskell问题?

如何解决这个Haskell问题?
EN

Stack Overflow用户
提问于 2010-05-06 06:37:39
回答 2查看 829关注 0票数 1

我想定义一个replicate函数,通过仅使用列表理解的值来复制数字列表,例如:

代码语言:javascript
运行
复制
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]

我知道这将很容易使用‘复制’内置函数,但只允许列表理解,我该怎么做呢?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-06 06:50:55

整洁的小问题。我是这样解决的。

代码语言:javascript
运行
复制
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

它获取列表中的每个值,创建其自身的多个副本,然后移动到下一个值。

票数 9
EN

Stack Overflow用户

发布于 2010-05-06 07:02:10

对于踢球:

代码语言:javascript
运行
复制
import Control.Monad
import Control.Monad.Instances

repList = concatMap $ join replicate
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2777247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档