Проблема проста: преобразовать поток элементов в поток потоков тех элементов, где первый элемент является исходным потоком, второй - хвостом исходного потока, третий - хвостом хвоста, и и так далее ...
Пример: (1, 2, 3, ...) становится ((1, 2, 3, ...), (2, 3, 4, ...), (3, 4, 5, ...), ...)
Мой вопрос не совсем так, как получить этот поток, потому что это просто, но есть ли уже метод или оператор, который делает это идиоматическим образом. Если такого метода нет, я также ищу подходящее имя для этой операции. Я чувствую, что развернуть или развернуть это не на самом деле, но что-то вроде этого.
Обновление: На заднем плане у меня есть функция типа Stream[A] => B
, и я хочу отобразить ее в потоке всех суффиксов входного потока. Поэтому представляется целесообразным сначала преобразовать поток в Stream[Stream[A]]
, чтобы отобразить его. Мне нужно правильное имя для него, потому что это, кажется, повторяющийся шаблон в моем коде.