簡體   English   中英

將 Scala 流轉換為流的操作符或方法(給定流的后綴)

[英]Operator or method for turning a Scala stream into a stream of streams (suffixes of given stream)

問題很簡單:將元素流轉換為那些元素的流,其中第一個元素是原始流,第二個是原始流的尾部,第三個是尾部的尾部,依此類推。 ..

例子: (1, 2, 3, ...) 變成 ((1, 2, 3, ...), (2, 3, 4, ...), (3, 4, 5, ...) , ...)

我的問題不完全是如何獲得這個流,因為它很簡單,而是是否已經有一種方法或操作符以慣用的方式做到這一點。 如果沒有這樣的方法,我也在為這個操作尋找一個合適的名稱。 我覺得展開或展開並不能真正確定它,而是沿着這些方向進行的一些事情。

更新:背景是我有一個Stream[A] => B類型的函數,我想將它映射到輸入流的所有后綴的流上。 因此,首先將流轉換為Stream[Stream[A]]以便對其進行映射似乎是可行的。 我需要一個合適的名稱,因為這似乎是我的代碼中反復出現的模式。

我終於自己找到了答案: .tails正是我正在尋找的。 從文檔:

迭代此序列的尾部。 第一個值是這個序列,最后一個值是一個空序列,中間的值是連續應用 tail 的結果。

返回:一個遍歷這個序列所有尾部的迭代器

如果需要,可以將迭代器簡單地轉換為流。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM