将Scala流转换为流(给定流的后缀)的运算符或方法

问题描述 投票:-1回答:1

问题很简单:将元素流转换为这些元素的流,其中第一个元素是原始流,第二个是原始流的尾巴,第三个是尾巴的尾巴,依此类推在...

示例:(1、2、3,...)变为((1、2、3,...),(2、3、4,...),(3、4、5 .. 。),...)

我的问题不是简单地如何获取此流,因为它很简单,而是是否已经有一种方法或运算符以惯用的方式进行此操作。如果没有这种方法,我也在为此操作寻找一个适当的名称。我觉得展开或展开并不会真正固定住它,而是沿着这些方向前进。

Update:背景是我具有Stream[A] => B类型的函数,并且想要将其映射到输入流的所有后缀的流上。我需要一个适当的名称,因为这在我的代码中似乎是一种重复出现的模式。

scala stream scala-streams
1个回答
0
投票
 stream.foldLeft(Stream(stream)) { case(last, _) => last :+ last.last.drop(1) }

至于名称... uselessMemoryWaste怎么样? :)

© www.soinside.com 2019 - 2024. All rights reserved.