package Ġk z . ild ar . sandbox . utils Ċ Ċ class ĠA Ġ{ ĊĠĠĠ Ġval Ġpublic Value Ġ= Ġ" public " ĊĠĠĠ Ġprivate Ġval Ġprivate Value Ġ= Ġ" private " ĊĠĠĠ Ġ@ Published Api ĊĠĠĠ Ġinternal Ġval Ġinternal Value Ġ= Ġ" internal " ĊĊĠĠĠ Ġ// notice Ġthat Ġa Lambda Ġis Ġmarked Ġas Ġno inline . ĊĠĠĠ Ġinline Ġfun Ġhigher Order Function ( no inline Ġlambda 1 : Ġ() Ġ-> ĠUnit , Ġlambda 2 : Ġ() Ġ-> ĠUnit , Ġcross inline Ġlambda 3 : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpublic Value Ċ // ĠĠĠĠĠĠĠ Ġprivate Value Ġ// can 't Ġaccess Ġprivate Ġfrom Ġinline ĊĠĠĠĠĠĠĠ Ġinternal Value ĊĊĠĠĠĠĠĠĠ Ġprintln ("-- == calling Ġlamb das ") ĊĠĠĠĠĠĠĠ Ġlambda 1 () ĊĠĠĠĠĠĠĠ Ġlambda 2 () ĊĠĠĠĠĠĠĠ Ġlambda 3 () ĊĊĠĠĠĠĠĠĠ Ġprintln ("-- == calling Ġnormal Function Ġwith Ġcontext ") ĊĠĠĠĠĠĠĠ Ġnormal Function Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlambda 1 . invoke () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlambda 2 . invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlambda 3 . invoke () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprintln ("-- == calling Ġnormal Function ") ĊĠĠĠĠĠĠĠ Ġnormal Function ( lambda 1 ) Ċ // ĠĠĠĠĠĠĠ Ġnormal Function ( lambda 2 ) Ċ // ĠĠĠĠĠĠĠ Ġnormal Function ( lambda 3 ) ĊĊĠĠĠĠĠĠĠ Ġprint (" I Ġwon 't Ġbe Ġexecuted Ġwhen Ġyou Ġcall Ġcalling Function () ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġnormal Function ( a Lambda : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġa Lambda . invoke () ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcalling Function () Ġ{ ĊĠĠĠĠĠĠĠ Ġhigher Order Function ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" lambda 1 Ġcalled ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ// Can 't Ġreturn Ġhere Ġsince Ġthis Ġlambda Ġis Ġno inline ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" lambda 2 Ġcalled ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" lambda 3 Ġcalled ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ// Can 't Ġreturn Ġhere Ġsince Ġthis Ġlambda Ġis Ġcross inline ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ ĠA (). calling Function () Ċ }