package Ġtransformations Ċ Ċ val Ġdouble It : Ġ( Int ) Ġ-> ĠInt Ġ= Ġ{ Ġi : ĠInt Ġ-> Ġi Ġ* Ġ 2 Ġ} Ċ Ċ val Ġtriple It : Ġ( Int ) Ġ-> ĠInt Ġ= Ġ{ Ġit Ġ* Ġ 3 Ġ} Ċ Ċ fun Ġmap It 1 Long ( i : ĠInt , Ġfunc : Ġ( Int ) Ġ-> ĠInt ): ĠList < Int > Ġ{ ĊĠ Ġval Ġlist Ġ= Ġmutable ListOf < Int >() ĊĠ Ġfor Ġ( v Ġin Ġ( 0 .. i ). toList ()) Ġ{ ĠĠ Ġ// Ġ( 0 .. i ) Ġis Ġinclusive ĊĠĠĠ Ġval Ġw Ġ= Ġfunc . invoke ( v ) ĊĠĠĠ Ġlist . add ( w ) ĊĠ Ġ} ĊĠ Ġreturn Ġlist Ċ } Ċ Ċ fun Ġmap It 1 Short ( i : ĠInt , Ġfunc : Ġ( Int ) Ġ-> ĠInt ): ĠList < Int > Ġ{ ĊĠ Ġreturn Ġ( 0 .. i ). toList (). map ( func ) Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠ Ġprintln ( map It 1 Long ( 6 , Ġdouble It )) ĊĠ Ġprintln ( map It 1 Long ( 6 , Ġtriple It )) ĊĠ Ġprintln ( map It 1 Short ( 6 , Ġdouble It )) ĊĠ Ġprintln ( map It 1 Short ( 6 , Ġtriple It )) ĊĠ Ġprintln ( map It 1 Short ( 4 , Ġ{ Ġi : ĠInt Ġ-> Ġi Ġ* Ġ 4 Ġ})) ĊĠ Ġprintln ( map It 1 Short ( 4 , Ġ{ Ġi : ĠInt Ġ-> Ġi Ġ* Ġ 5 Ġ})) ĊĠ Ġprintln ( map It 1 Short ( 4 , Ġ{ Ġit Ġ* Ġ 7 Ġ})) ĊĠ Ġprintln ( map It 1 Short ( 4 , Ġ{ Ġit Ġ* Ġ 8 Ġ})) Ċ }