package Ġworkshop Ċ Ċ import Ġio . reactivex . rx java 3 . core . Observable Ċ import Ġjava . util . concurrent . TimeUnit ĊĊ Ċ class ĠWork shop Ġ{ ĊĊ ĉ // ĠPro duces Ġan ĠObservable Ġof ĠUnit Ċ ĉ // ĠFor Ġinstance Ġproducing Units ( 5 ) Ġ-> Ġ[ Unit , ĠUnit , ĠUnit , ĠUnit , ĠUnit ] Ċ ĉ fun Ġproducing Units ( num : ĠInt ): ĠObservable < Unit > Ġ= ĠObservable . just ( Unit ). repeat ( num . to Long ()) ĊĊ ĉ // ĠShould Ġtransform ĠUnit 's Ġto Ġtoggle d Ġboolean Ġvalue Ġstarting Ġfrom Ġtrue Ċ ĉ // ĠFor Ġinstance Ġ( Unit , ĠUnit , ĠUnit , ĠUnit ). to Next Numbers () Ġ-> Ġ[ true , Ġfalse , Ġtrue , Ġfalse ] Ċ ĉ fun ĠObservable < Unit >. to Toggle (): ĠObservable < Boolean > Ġ= Ġscan ( false ) Ġ{ Ġtoggle , Ġ_ Ġ-> Ġ! toggle Ġ}. skip ( 1 ) ĊĊ ĉ // ĠAdds Ġa Ġdelay Ġof Ġtime Ġ` time Millis ` Ġbetween Ġelements Ċ ĉ fun Ġ< T > ĠObservable < T >. delay Each ( time Millis : ĠLong ): ĠObservable < T > Ġ= Ġdelay ( time Millis , ĠTimeUnit . MILLISECONDS ) ĊĊ ĉ // ĠShould Ġtransform ĠUnit 's Ġto Ġnext Ġnumbers Ġstart ling Ġfrom Ġ 1 Ċ ĉ // ĠFor Ġinstance Ġ( Unit , ĠUnit , ĠUnit , ĠUnit ). to Next Numbers () Ġ-> Ġ[ 1 , Ġ 2 , Ġ 3 , Ġ 4 ] Ċ ĉ fun ĠObservable < Unit >. to Next Numbers (): ĠObservable < Int > Ġ= Ġscan ( 0 ) Ġ{ Ġnumber , Ġ_ Ġ-> Ġnumber Ġ+ Ġ 1 Ġ}. skip ( 1 ) ĊĊ ĉ // ĠPro duces Ġnot Ġonly Ġelements , Ġbut Ġthe Ġwhole Ġhistory Ġtill Ġnow Ċ ĉ // ĠFor Ġinstance Ġ( 1 , Ġ" A ", Ġ' C '). with History () Ġ-> Ġ[[ ], Ġ[ 1 ], Ġ[ 1 , ĠA ], Ġ[ 1 , ĠA , ĠC ]] Ċ ĉ fun Ġ< T > ĠObservable < T >. with History (): ĠObservable < List < T >> Ġ= Ġscan ( emptyList < T >()) Ġ{ Ġacc , Ġelement Ġ-> Ġacc Ġ+ Ġelement Ġ} Ċ }