package Ġhm . b ink ley . kotlin Ċ Ċ public Ġinterface ĠSeek able Sequence < T > Ġ: ĠSequence < T > Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFinds Ġthe Ġ" nth " Ġelement Ġof Ġthe Ġsequence . Ġ ĠSe quences Ġare Ġlazy Ġby Ġdesign , ĊĠĠĠĠ Ġ* Ġso Ġthis Ġmust Ġwalk Ġeach Ġelement Ġfrom Ġthe Ġbeginning Ġto Ġfind Ġthe Ġnth ĊĠĠĠĠ Ġ* Ġelement . Ġ ĠNo Ġassumption Ġis Ġmade Ġthat Ġthe Ġsequence Ġis Ġbounded : Ġthis Ġcould ĊĠĠĠĠ Ġ* Ġbe Ġvery Ġexpensive Ġfor Ġlarge Ġindices Ġor Ġhard - to - compute Ġsequences . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġindex Ġmust Ġbe Ġnon - negative , Ġelse Ġthrows Ġ` Index OutOfBoundsException `. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠRepeat able : Ġeach Ġcall Ġstarts Ġa Ġnew Ġiterator Ġover Ġthe Ġsequence . Ġ ĠThis ĊĠĠĠĠ Ġ* Ġassumes Ġthe Ġsequence Ġis Ġrestart able . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġoperator Ġfun Ġget ( index : ĠInt ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( 0 Ġ> Ġindex ) Ġthrow ĠIndex OutOfBoundsException ("$ index : ĠNegative Ġindex ") ĊĠĠĠĠĠĠĠ Ġwith Index (). forEach Ġ{ Ġ( i , Ġit ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== Ġi ) Ġreturn Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthrow ĠIndex OutOfBoundsException ("$ index : ĠP ast Ġend ") ĊĠĠĠ Ġ} Ċ } Ċ