// ĠFIR _ IGNORE Ċ data Ġclass ĠVector ( val Ġx : ĠInt , Ġval Ġy : ĠInt ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVector Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ Ġconstructor ĠVector ( Int , ĠInt ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠĠĠĠĠ Ġval Ġ( Vector ). x : ĠInt Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠĠĠĠĠ ĠâĶĤ Ġfun Ġ( Int ). plus ( Int ): ĠInt Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠVector . plus . other : ĠVector Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠâĶĤ ĠĠĠĠ Ġval Ġ( Vector ). x : ĠInt Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠâĶĤ ĠĠĠĠ ĠâĶĤ Ġ Ġval Ġ( Vector ). y : ĠInt Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠâĶĤ ĠĠĠĠ ĠâĶĤ Ġ ĠâĶĤ Ġfun Ġ( Int ). plus ( Int ): ĠInt Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠâĶĤ ĠĠĠĠ ĠâĶĤ Ġ ĠâĶĤ ĠâĶĤ ĠVector . plus . other : ĠVector Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠâĶĤ ĠĠĠĠ ĠâĶĤ Ġ ĠâĶĤ ĠâĶĤ ĠâĶĤ ĠĠĠĠ Ġval Ġ( Vector ). y : ĠInt Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠâĶĤ ĠĠĠĠ ĠâĶĤ Ġ ĠâĶĤ ĠâĶĤ ĠâĶĤ ĠĠĠĠ ĠâĶĤ ĊĠĠĠ Ġfun Ġplus ( other : ĠVector ): ĠVector Ġ= ĠVector ( x Ġ+ Ġother . x , Ġy Ġ+ Ġother . y ) Ċ } Ċ Ċ fun Ġmain () Ġ{ Ċ // ĠĠĠĠĠ ĠVector Ċ // ĠĠĠĠĠ ĠâĶĤ ĠĠ Ġconstructor ĠVector ( Int , ĠInt ) Ċ // ĠĠĠĠĠ ĠâĶĤ ĠĠ ĠâĶĤ ĠĠĠĠĠ ĠInt Ċ // ĠĠĠĠĠ ĠâĶĤ ĠĠ ĠâĶĤ ĠĠĠĠĠ ĠâĶĤ Ġ ĠInt Ċ // ĠĠĠĠĠ ĠâĶĤ ĠĠ ĠâĶĤ ĠĠĠĠĠ ĠâĶĤ Ġ ĠâĶĤ ĊĠĠĠ Ġval Ġa Ġ= ĠVector ( 1 , Ġ 2 ) Ċ // ĠĠĠĠĠ ĠVector Ċ // ĠĠĠĠĠ ĠâĶĤ ĠĠ Ġconstructor ĠVector ( Int , ĠInt ) Ċ // ĠĠĠĠĠ ĠâĶĤ ĠĠ ĠâĶĤ ĠĠĠĠĠĠ ĠInt Ċ // ĠĠĠĠĠ ĠâĶĤ ĠĠ ĠâĶĤ ĠĠĠĠĠĠ ĠâĶĤ Ġ ĠInt Ċ // ĠĠĠĠĠ ĠâĶĤ ĠĠ ĠâĶĤ ĠĠĠĠĠĠ ĠâĶĤ Ġ ĠâĶĤ ĊĠĠĠ Ġval Ġb Ġ= ĠVector (- 1 , Ġ 1 0 ) Ċ Ċ // Ġ Ġfun Ġio / println ( Any ?): ĠUnit Ċ // Ġ ĠâĶĤ ĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain . a : ĠVector Ċ // Ġ ĠâĶĤ ĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠĠĠĠĠĠĠ Ġval Ġmain . b : ĠVector Ċ // Ġ ĠâĶĤ ĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠĠĠĠĠĠĠ ĠâĶĤ Ġfun Ġ( Vector ). toString (): ĠString Ċ // Ġ ĠâĶĤ ĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĊĠĠĠ Ġprintln (" a Ġ= Ġ$ a , Ġb Ġ= Ġ${ b . toString () }") Ċ // Ġ Ġfun Ġio / println ( Any ?): ĠUnit Ċ // Ġ ĠâĶĤ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ( String ). plus ( Any ?): ĠString Ċ // Ġ ĠâĶĤ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ Ġ Ġval Ġmain . a : ĠVector Ċ // Ġ ĠâĶĤ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ Ġ ĠâĶĤ Ġfun Ġ( Vector ). plus ( Vector ): ĠVector Ċ // Ġ ĠâĶĤ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ Ġ ĠâĶĤ ĠâĶĤ Ġval Ġmain . b : ĠVector Ċ // Ġ ĠâĶĤ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ Ġ ĠâĶĤ ĠâĶĤ ĠâĶĤ ĊĠĠĠ Ġprintln (" a Ġ+ Ġb Ġ= Ġ" Ġ+ Ġ( a Ġ+ Ġb )) Ċ // Ġ Ġfun Ġio / println ( Any ?): ĠUnit Ċ // Ġ ĠâĶĤ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain . a : ĠVector Ċ // Ġ ĠâĶĤ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ Ġfun Ġ( Vector ). hashCode (): ĠInt Ċ // Ġ ĠâĶĤ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĊĠĠĠ Ġprintln (" a Ġhash Ġ- Ġ${ a . hashCode () }") Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain . a : ĠVector Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠE Q Ġoperator Ġcall Ċ // Ġ Ġfun Ġio / println ( Any ?): ĠUnit ĠâĶĤ ĠâĶĤ ĠĠĠĠĠ Ġval Ġmain . b : ĠVector Ċ // Ġ ĠâĶĤ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠĠĠĠĠ ĠâĶĤ ĊĠĠĠ Ġprintln (" a Ġis Ġequal Ġto Ġb Ġ${ a . equals ( b )} ") Ċ } Ċ