问题很简单:将元素流转换为这些元素的流,其中第一个元素是原始流,第二个是原始流的尾巴,第三个是尾巴的尾巴,依此类推在...
示例:(1、2、3,...)变为((1、2、3,...),(2、3、4,...),(3、4、5 .. 。),...)
我的问题不是简单地如何获取此流,因为它很简单,而是是否已经有一种方法或运算符以惯用的方式进行此操作。如果没有这种方法,我也在为此操作寻找一个适当的名称。我觉得展开或展开并不会真正固定住它,而是沿着这些方向前进。
Update:背景是我具有Stream[A] => B
类型的函数,并且想要将其映射到输入流的所有后缀的流上。我需要一个适当的名称,因为这在我的代码中似乎是一种重复出现的模式。
stream.foldLeft(Stream(stream)) { case(last, _) => last :+ last.last.drop(1) }
至于名称... uselessMemoryWaste
怎么样? :)