package ĠWeek 3 ĊĊ Ċ /** Ċ Ġ* ĠThings Ġle ar nt Ġin Ġfunction Ġtypes . Ċ Ġ* Ġ 1 . Ġstore Ġlambda Ġin Ġvariable Ġbut Ġnot Ġfunction Ġin Ġvariable . Ċ Ġ* Ġbut Ġhowever Ġyou Ġcan Ġstore Ġits Ġreference ( member Ġreferences ). Ċ Ġ* Ġ 2 . ĠNullable Ġfunctions Ġtypes Ġas Ġshown Ġin Ġfunc 3 . Ċ Ġ* Ġ 3 . Ġpass Ġfunction Ġas Ġa Ġreference Ġwhenever Ġlambda Ġg rows . Ċ Ġ* Ġ 4 . Ġbounded Ġvs Ġun bounded Ġreference .( bounded Ġto Ġspecific Ġinstance Ġor Ġnot ) Ċ Ġ* Ġ 5 . ĠĠĠ Ġbetween Ġ() -> Int ? Ġand Ġ( ()-> Int )? Ċ Ġ* ĠĠĠ Ġreturns Ġnullable ĠInt Ġother Ġnullable Ġfunction Ġtype . Ċ Ġ* Ġ 6 . Ġcan Ġs Ġto re Ġfunctional Ġreference Ġbut Ġnot Ġfunction . Ċ Ġ* Ġ 7 . Ġwhenever Ġlambda Ġt ends Ġto Ġgrow Ġextract Ġinto Ġa Ġfunction .( pass ing Ġfunc Ġby Ġref ) Ċ Ġ*/ Ċ fun Ġmain ( args : Array < String > ){ ĊĊĠĠĠ Ġ// we ired Ġbut Ġpossible . ĊĠĠĠ Ġval Ġfunc 1 Ġ= Ġ{ Ġprintln (" Hello ") }() ĊĊĠĠĠ Ġprintln ( func 1 ) ĊĊĠĠĠ Ġ// another Ġversion Ġwould Ġbe Ġthat Ġis Ġreadable . ĊĠĠĠ Ġval Ġfunc 2 Ġ= Ġrun { Ġprintln (" Hello ĠWorld ")} ĊĠĠĠ Ġprintln ( func 2 ) ĊĊĠĠĠ Ġ// whole Ġof Ġfunc 3 Ġcan Ġbe Ġnullable . ĊĠĠĠ Ġvar Ġfunc 3 : (( Int )-> Boolean )? = null ĊĊĠĠĠ Ġprintln ( func 3 ) ĊĠĠĠ Ġfunc 3 Ġ= Ġ{ i -> i > 0 } ĊĠĠĠ Ġprintln ( func 3 ?. invoke ( 1 2 )) ĊĊĠĠĠ Ġfun Ġsmall Function (){ ĊĠĠĠĠĠĠĠ Ġprintln (" Print ing Ġinside Ġsmall Ġfunctions ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// bounded Ġref ĊĠĠĠ Ġprintln (:: small Function . invoke ()) ĊĊĠĠĠ Ġ// un Ġbounded Ġref ĊĠĠĠ Ġval Ġmodel Ġ= ĠModel (" example Ġname ") ĊĠĠĠ Ġprintln ( model :: getModel Name . invoke ()) ĊĊĠĠĠ Ġ// wh enever Ġlambda Ġt ends Ġto Ġgrow Ġextract Ġinto Ġa Ġfunction . ĊĠĠĠ Ġ// this Ġis Ġcalled Ġpassing Ġfunction Ġreference . ĊĠĠĠ Ġval Ġis Even Ġ= Ġ{ number : Int -> number % 2 == 0 } ĊĠĠĠ Ġval ĠlistOf Numbers Ġ= ĠlistOf ( 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ) ĊĠĠĠ Ġprintln ( listOf Numbers . filter ( is Even ). join ToString (" Ġ")) Ċ } ĊĊ Ċ data Ġclass ĠModel ( val Ġmodel name : String =" default Ġname "){ ĊĠĠĠ Ġfun Ġget ModelName (): String Ġ= Ġ"$ model name ĠThis Ġis Ġfrom ĠModel Ġclass " Ċ }