加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala,无限重复有限列表

发布时间:2020-12-16 09:45:17 所属栏目:安全 来源:网络整理
导读:我想在scala中使用Stream类来无限重复给定的列表。 例如列表(1,2,3,4,5)我想创建一个给我的流(1,5,1,3 ….) 所以我可以包装采取操作。我知道这可以以其他方式实现,但是我想这样做是为了某种原因,只是幽默我:) 所以这个想法是,通过从一些列表创建的这个无
我想在scala中使用Stream类来无限重复给定的列表。

例如列表(1,2,3,4,5)我想创建一个给我的流(1,5,1,3 ….)

所以我可以包装采取操作。我知道这可以以其他方式实现,但是我想这样做是为了某种原因,只是幽默我:)

所以这个想法是,通过从一些列表创建的这个无限循环,我可以使用take操作,当它到达列表的末尾时,它会循环。

如何制作一个简单重复给定列表的流?

解决方法

非常类似于@ Eastsun的,但有一点意图揭示。测试在Scala 2.8。

scala> val l  = List(1,3)
l: List[Int] = List(1,3)

scala> Stream.continually(l.toStream).flatten.take(10).toList
res3: List[Int] = List(1,1)

或者,与Scalaz:

scala> import scalaz._
import scalaz._

scala> import Scalaz._
import Scalaz._

scala> val l = List(1,3)

scala> l.toStream.repeat[Stream].join.take(10).toList
res7: List[Int] = List(1,1)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读