scala -> stream

0

Czesc,
mam problem ze stream, wie ktos jak dodac nowy element do stream np. dodac 3

var stream = 1 #:: 2 #:: Stream.empty
2

Stream nie jest strukturą danych do której dodaje się elementy. W zamyśle, jest to mechanizm który wytwarza dane, a Ty możesz z nimi coś zrobić.

Możesz połączyć dwa streamy w nowy za pomocą Stream.concat. Mniej więcej będzie to Stream.concat(stream, Stream(3))

2

Stream jest deprecated w Scali 2.13 i zamiast niego zaleca się używanie LazyList.

Rozwiązanie problemu to np (w zależności od tego czy chesz dodać element z lewej czy z prawej):

val s = 1 #:: 2 #:: Stream.empty
(3 #:: s).force
(s :+ 3).force

val ll = 1 #:: 2 #:: LazyList.empty
(3 #:: ll).force
(ll :+ 3).force

https://scastie.scala-lang.org/HbpyC9wgR1q7zXqHk5NivA
force dodałem po to, by było widać całą kolekcję przy println.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0