fun Ġmain Ġ(){ ĊĊĠĠĠ Ġ/* ĊĠĠĠ ĠExample Ġ 1 Ġ: ĠFlat ten () Ġ: ĠReturns Ġa Ġsingle ĠList Ġof Ġall Ġthe Ġelements Ġof Ġthe Ġnested Ġcollections . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġnumber Sets Ġ= ĠlistOf ( set Of ( 1 , Ġ 2 , Ġ 3 ), Ġset Of ( 4 , Ġ 5 , Ġ 6 ), Ġset Of ( 5 , Ġ 6 ), set Of ( 2 2 , 1 1 , 4 4 )) ĊĠĠĠ Ġprintln ( number Sets ) ĊĠĠĠ Ġprintln ( number Sets . flatten ()) ĊĊĠĠĠ Ġ/* ĊĠĠĠ ĠExample Ġ 2 Ġ: ĠFlat Map () Ġ: ĠReturns Ġa Ġsingle ĠList Ġof Ġall Ġthe Ġelements Ġof Ġthe Ġnested Ġcollections . ĊĠĠĠ Ġ*/ ĊĊĊĠĠĠ Ġval Ġcontainers Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString Container ( listOf (" one ", Ġ" two ", Ġ" three ")), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString Container ( listOf (" four ", Ġ" five ", Ġ" six ")), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString Container ( listOf (" se ven ", Ġ" eight ")) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprintln ( containers . flatMap Ġ{ Ġit . values Ġ}) ĊĊĊĠĠĠ Ġ/* ĊĠĠĠ ĠExample Ġ 3 Ġ: ĠString Ġrepresentations ĊĠĠĠ Ġjoin ToString () Ġbuilds Ġa Ġsingle ĠString Ġfrom Ġthe Ġcollection Ġelements ĊĠĠĠĠ Ġbased Ġon Ġthe Ġprovided Ġarguments . ĊĠĠĠ Ġ*/ ĊĊĠĠĠ Ġval Ġfruit Container Ġ= ĠlistOf ( set Of (" apple ", Ġ" P ear " Ġ, Ġ" Ban ana "), Ġset Of (" p izza ", Ġ" ch ips ", Ġ" mal te ada ")) ĊĠĠĠ Ġprintln ( fruit Container . flatten (). join ToString Ġ()) ĊĠĠĠ Ġprintln ( fruit Container . join ToString ( separator Ġ= Ġ" Ġ| Ġ", Ġprefix Ġ= Ġ" start : Ġ", Ġpostfix Ġ= Ġ": Ġend ")) ĊĊĠĠĠ Ġ/* ĊĠĠĠ ĠExample Ġ 4 Ġ: ĠTr uc ante ĊĠĠĠ Ġjoin ToString () Ġbuilds Ġa Ġsingle ĠString Ġfrom Ġthe Ġcollection Ġelements ĊĠĠĠĠ Ġbased Ġon Ġthe Ġprovided Ġarguments . ĊĠĠĠ Ġ*/ ĊĊĠĠĠ Ġval Ġnumbers Ġ= Ġ( 1 .. 1 0 0 ). toList () ĊĠĠĠ Ġprintln ( numbers . join ToString ( limit Ġ= Ġ 1 0 , Ġtruncated Ġ= Ġ"< ...> ")) ĊĊĠĠĠ Ġ/* ĊĠĠĠ ĠExample Ġ 4 : ĠTransformation ĊĠĠĠ Ġjoin ToString () Ġbuilds Ġa Ġsingle ĠString Ġfrom Ġthe Ġcollection Ġelements ĊĠĠĠ Ġbased Ġon Ġthe Ġprovided Ġarguments . ĊĠĠĠ Ġ*/ ĊĊĠĠĠ Ġval Ġnumbers 2 Ġ= ĠlistOf (" one ", Ġ" two ", Ġ" three ", Ġ" four ") ĊĠĠĠ Ġprintln ( numbers 2 . join ToString Ġ{ Ġ" Element : Ġ${ it . toUpperCase () }" }) ĊĊĠĠĠ Ġ// SH OP ĠSET ĠUP ĊĠĠĠ Ġval Ġcity 1 Ġ= ĠCity Ġ(" B og ota ") ĊĠĠĠ Ġval Ġcity 2 Ġ= ĠCity Ġ(" L ondon ") ĊĠĠĠ Ġval Ġproduct 1 Ġ= ĠProduct (" B read ", Ġ 1 0 . 5 0 ) ĊĠĠĠ Ġval Ġproduct 2 Ġ= ĠProduct (" R ice ", Ġ 4 . 2 3 ) ĊĠĠĠ Ġval Ġproduct 3 Ġ= ĠProduct (" pot ato es ", Ġ 1 . 2 3 ) ĊĠĠĠ Ġval Ġproduct 4 Ġ= ĠProduct (" bro co li ", Ġ 1 2 . 6 0 ) ĊĠĠĠ Ġval Ġproduct 5 Ġ= ĠProduct (" mas a Ġde Ġare pas ", Ġ 5 0 . 0 9 ) ĊĠĠĠ Ġval Ġorder 1 Ġ= ĠOrder ( listOf ( product 1 , product 3 , Ġproduct 4 ), Ġfalse ) ĊĠĠĠ Ġval Ġorder 2 Ġ= ĠOrder ( listOf ( product 2 ), Ġtrue ) ĊĠĠĠ Ġval Ġorder 3 Ġ= ĠOrder ( listOf ( product 1 , Ġproduct 2 ), Ġfalse ) ĊĠĠĠ Ġval Ġorder 4 Ġ= ĠOrder ( listOf ( product 3 , Ġproduct 4 ), Ġtrue ) ĊĊĠĠĠ Ġval Ġcustomer 1 Ġ= ĠCustomer (" Mar ia ĠA ", Ġcity 1 , ĠlistOf ( order 1 , Ġorder 2 , Ġorder 3 )) ĊĠĠĠ Ġval Ġcustomer 2 Ġ= ĠCustomer (" Ben ĠE ", Ġcity 2 , ĠlistOf ( order 1 )) ĊĠĠĠ Ġval Ġcustomer 3 Ġ= ĠCustomer (" S anti ", Ġcity 2 , ĠlistOf ( order 1 , Ġorder 4 )) ĊĠĠĠ Ġval Ġshop Ġ= ĠShop (" R ox ip an ", ĠlistOf ( customer 2 , customer 3 , Ġcustomer 1 )) ĊĊĠĠĠ Ġ// ĠReturn Ġall Ġproducts Ġthe Ġgiven Ġcustomer Ġhas Ġordered ĊĠĠĠ Ġprintln ( customer 1 . orders . flatMap Ġ{ Ġit . products Ġ}) ĊĠĠĠ Ġ/* Return Ġall Ġproducts Ġthat Ġwere Ġordered Ġby Ġat Ġleast Ġone Ġcustom ĊĠĠĠ ĠB read , Ġr ice , Ġpot ato es , Ġbro co li ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġval Ġall Products ordered Ġ= Ġ( shop . customers . flatMap Ġ{ Ġit . orders Ġ}). flatMap Ġ{ Ġit . products Ġ} ĊĠĠĠ Ġprintln ( all Products ordered . distinct ()) ĊĊĊĊĊ Ċ } ĊĊ Ċ data Ġclass ĠString Container ( val Ġvalues : ĠList < String >)