将一个流分成许多

编程入门 行业动态 更新时间:2024-10-23 11:17:01
本文介绍了将一个流分成许多的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想知道是否有一种优雅的方式来实现这样的目标:

I'd like to know if there a elegant way to achieve something like that:

val l = Stream.from(1) val parts = l.some_function(3) //any number parts.foreach( println(_) ) > 1,4,7,10... > 2,5,8,11... > 3,6,9,12...

实际上,我需要在 Streams 上进行此类操作以进行并行化 - 将数据拆分到多个 actor 而不将整个内容加载到内存中.

Actually I need such operation on Streams for parallelization - to split the data across multiple actors without loading the whole stuff into memory.

推荐答案

来自 将scala列表拆分为n个交错列表完全满足条件,稍微修改以适应Streams:

The answer from Split a scala list into n interleaving lists fully meets the conditions, a little bit modified to suit Streams:

def round[A](seq: Iterable[A], n: Int) = { (0 until n).map(i => seq.drop(i).sliding(1, n).flatten) } round(Stream.from(1),3).foreach(i => println(i.take(3).toList)) List(1, 4, 7) List(2, 5, 8) List(3, 6, 9)

更多推荐

将一个流分成许多

本文发布于:2023-11-26 00:41:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1631972.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!