package Ġcom . book shop Ċ Ċ fun Ġpretty Print ( book : ĠBook ) Ġ{ ĊĠĠĠ Ġprintln ( book . title ) ĊĠĠĠ Ġprintln ("\ t by Ġ${ book . author }") ĊĠĠĠ Ġprintln ("\ t \ t Ġat Ġa Ġcost Ġof Ġ${ book . price }") Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġprintln (" Welcome Ġto Ġthe ĠBook shop !") ĊĊĠĠĠ ĠBook shop . print Details () ĊĊĠĠĠ Ġprintln ("\ n Calcul ating Ġthe ĠSales ĠDiscount Ġprice ") ĊĠĠĠ ĠBook shop . book . sales Discount Ġ= Ġ 0 . 1 0 ĊĠĠĠ Ġprintln (" Sale Ġprice Ġof Ġbook : Ġ%. 2 f ". format ( Book shop . book . calculate Sale Price ())) ĊĊĠĠĠ ĠBook shop . book . number Hel d Ġ= Ġ 5 ĊĠĠĠ Ġprintln (" Number Ġof Ġcopies Ġheld : Ġ${ Book shop . book . number Hel d }") ĊĊĠĠĠ Ġprintln () ĊĊĠĠĠ Ġpretty Print ( Book shop . book ) ĊĊĠĠĠ Ġprintln (" ----------- ") ĊĊĠĠĠ Ġprintln (" Filter Ġexample :") ĊĠĠĠ Ġval Ġtechnical Books Ġ= ĠBook shop . books [ Technical ] ĊĊĠĠĠ Ġprintln (" Pretty ĠPrint ing Ġall Ġbooks Ġin Ġthe ĠTechnical Ġgenre ") ĊĠĠĠ Ġtechnical Books ?. forEach Ġ{ Ġbook Ġ-> Ġpretty Print ( book ) Ġ} ĊĊĠĠĠ Ġprintln (" Print ing Ġall Ġbooks Ġbelow Ġ 1 5 . 0 Ġin Ġprice ") ĊĠĠĠ Ġtechnical Books ĊĠĠĠĠĠĠĠ Ġ? . filter Ġ{ Ġbook Ġ-> Ġbook . price Ġ< Ġ 1 5 . 0 Ġ} ĊĠĠĠĠĠĠĠ Ġ? . forEach Ġ{ Ġbook Ġ-> Ġpretty Print ( book ) Ġ} ĊĊĠĠĠ Ġprintln (" ------- ") ĊĊĠĠĠ Ġval Ġb : ĠBook ? Ġ= ĠBook shop . books [ Technical ]?. get ( 0 ) ĊĠĠĠ Ġb ?. run Ġ{ Ġpretty Print ( this ) Ġ} ĊĊĠĠĠ Ġwith ( b ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpretty Print ( this !! ) Ġ Ġ// Ġbook Ġcould Ġbe Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmusic Ġ= ĠMusic (" Ticket Ġto ĠR ide ", Ġ 1 5 . 9 5 ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Please Ġenter Ġthe Ġsales Ġdiscount Ġfor Ġthe Ġgame : Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġdiscount String : ĠString ? Ġ= Ġread Line () ĊĠĠĠĠĠĠĠ Ġval Ġdiscount : ĠDouble ? Ġ= Ġdiscount String ?. toDouble () ĊĠĠĠĠĠĠĠ Ġsales Discount Ġ= Ġdiscount Ġ?: Ġ 0 . 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprintln ( music ) ĊĊ Ċ }