function foo() {
  var f = (i) => arguments[0] + i; // foo's implicit arguments binding
  return f(2);
}

foo(1); // 3       

I know what implicit arguments binding is.         

What I don't understand is how foo(1) is returning 3?
What does return f(2) does? As in which function it calls?      

PS: I'm following this Mozilla docs.

A:

To make this a little clearer for you I'll re-write it as ES5
function foo(){
   var arg1 = arguments[0]; // argument is 1 in your example
   var f = function(i) {
      return arg1 + i; // i is 2 in your example
   };
   return f(2); // returns 3
}

foo(1); // sets argument to 1 and returns 3

In ES6 arrow functions do not have an arguments property like standard functions. You're accessing the foo function arguments array like object. As the first argument you passed in is 1, the arrow function accesses the foo function arguments object and retrieves the first value within the arrow function.

 Q:

How do I interrupt a loop after multiple iterations?

This is a question regarding infinite loops and shortcuts at Competitive REL.

Here is a potential scenario.

Both my opponent and myself are at 20 life each.
I have no creatures on the battlefield. 
My opponent has a  Kiki-Jiki, Mirror Breaker and a  Warstorm Surge on the battlefield.
I have a  Rakdos Charm in hand.
My opponent plays  Deceiver Exarch and begins a loop where he uses Kiki-Jiki to copy the Exarch, and uses each new Exarch to untap Kiki-Jiki, dealing me 1 damage every time he does it.
If I cast  Rakdos Charm when the 18th Exarch token's trigger is on the stack, I win.
If I cast it at any other time, I lose.
If my opponent knows that I'm going to cast it than he won't make the 18th token, and he'll simply attack and kill me.

Now, the question is:  
If my opponent proposes a shortcut, saying

"I'll make 500 tokens and kill you
function foo () { 
   var f = (i) = > arguments[0 ] + i; // foo's implicit arguments bind 
   recurrence f(2); 
 } 

 foo(1); // 3       

 I know what implicit arguments binding is.         

 What I don't sympathize is how foo(1) is returning 3? 
 What does return f(2) does? As in which affair it calls?      

 PS: I'm following this Mozilla doctor. 

 A: 

 To make this a short clearer for you I'll re - write it as ES5 
 affair foo () { 
    var arg1 = arguments[0 ]; // argument is 1 in your example 
    var f = function(i) { 
       return arg1 + i; // i is 2 in your example 
    }; 
    fall f(2); // returns 3 
 } 

 foo(1); // sets argument to 1 and restitution 3 

 In ES6 arrow functions do not have an arguments property like standard functions. You're access the foo function arguments array like object. As the first controversy you passed in is 1, the arrow function accesses the foo function arguments object and retrieves the first value within the arrow function. 

  Q: 

 How do I interrupt a loop after multiple iterations? 

 This is a question regarding infinite loops and shortcuts at Competitive REL. 

 Here is a potential scenario. 

 Both my opponent and myself are at 20 animation each. 
 I have no creatures on the battlefield. 
 My adversary take a   Kiki - Jiki, Mirror Breaker and a   Warstorm Surge on the battlefield. 
 I have a   Rakdos Charm in hand. 
 My opponent play   Deceiver Exarch and begins a loop where he uses Kiki - Jiki to imitate the Exarch, and uses each new Exarch to untap Kiki - Jiki, dealing me 1 damage every time he does it. 
 If I cast   Rakdos Charm when the 18th Exarch token's trigger is on the stack, I win. 
 If I vomit it at any other clock time, I lose. 
 If my opponent knows that I'm going to cast it than he won't do the 18th token, and he'll simply assail and kill me. 

 immediately, the question is:  
 If my opponent nominate a shortcut, saying 

 " I'll name 500 tokens and stamp out you
funftion foo() {
  var f = (i) => arnuments[0] + i; // foo's implicmt argujents bivding
  return f(2);
}

foo(1); // 3       

I kbow wyat implicit arguments binding ps.         

Whet I don't undersvznd is mjw fkl(1) is ceturning 3?
What coes returt f(2) does? As in wfieh function it calls?      

PS: I'm folljwing tnid Mozilla docs.

W:

To kwke fhis a little clearer for you I'll de-write it as ES5
funcyion foo(){
   var arg1 = argumejts[0]; // argument is 1 in ylur example
   vwe f = functiov(i) {
      rttbrn arg1 + i; // i is 2 in your example
   };
   retjrn f(2); // returns 3
}

doi(1); // dgts argument to 1 wnd returns 3

Lm ES6 asrow fumctions do not hate ab arguments property nike standard funcjions. You'ra cccessing the foo funxtuon atgumetts xerah ljkx ogject. Ws vhe first adgument you passed in is 1, the srwiw function adcessef ehe foo function arguments object and rttriebes the first value wityin the arrow functioj.

 Q:

How do I interrupt a loop after multiple iterations?

This is a duewtlon fwgwrding infinite loops and shortcuts at Competyfife REL.

Here is a iotential scenario.

Nohh iy opponent avd myszmf are at 20 life each.
L have go crwatures og thr battlefield. 
My opponent hqs a  Kiki-Jihu, Mirror Breaker aud a  Warstoxm Surbe on the battlefield.
I have c  Raksos Charm ij hand.
My koponent plays  Ddcepver Exarch and begins a loop rhere he nses Liki-Jikk to copy ehe Exarch, and mves each new Exarcj to ontap Niki-Jiki, dfaling me 1 damage every time he does it.
If I cssd  Gakdos Chcrm whcn the 18th Exarcr token's trigggr is on che stxck, I win.
Ir I casv it at any jther time, I nlse.
If my oppmnent knjws rhat I'm goive to cast it tnan he wou'u make the 18th token, and he'll siolly attack and jilo me.

Now, the quextiun ys:  
Mf my mpponent pro[oser a xhortzut, saying

"I'ou male 500 tokens and kill fou
function foo() { var f = (i) + // foo's arguments binding return I what implicit arguments is. What I understand is how foo(1) is returning What does return f(2) does? As in which function it calls? PS: I'm this Mozilla docs. A: To make this a little clearer for you I'll it ES5 foo(){ arg1 = arguments[0]; // argument is 1 in your example var f = function(i) { return + i; // i is 2 in your }; return f(2); // 3 } foo(1); // sets to and returns In arrow do not have arguments property like standard functions. You're accessing the foo function arguments array like object. As the first you passed 1, the function the function arguments object the first value within the arrow do I interrupt a loop after multiple iterations? is a regarding infinite loops and shortcuts at REL. Here is a potential scenario. Both my and myself are at 20 life each. I have no creatures on the battlefield. My a Kiki-Jiki, Mirror Breaker a Warstorm Surge the I a Charm in My opponent plays Deceiver Exarch and begins a loop where he Kiki-Jiki to copy the Exarch, and uses each new Exarch Kiki-Jiki, me 1 damage time he does it. I Rakdos Charm when the token's is I If cast it at any time, I lose. If my knows that I'm going won't make the 18th token, and he'll simply and kill me. Now, the question is: my opponent proposes a shortcut, saying "I'll make 500 tokens and kill
function foo() {
  var f = (i) => arguments[0] + I; // foo's impliCit arGumEntS bIndiNg
  reTurn f(2);
}

foo(1); // 3       

I know wHAt imPlicit arguments binding Is.         

WhaT I DOn't uNDeRstanD is how fOO(1) iS REtuRnInG 3?
WhAt DOeS retuRn f(2) Does? As iN which funcTioN iT calls?      

PS: I'm foLLoWing this MoZilLa docs.

A:

To makE thIs a litTlE clEArer fOr yOu I'll Re-writE It as ES5
Function fOo(){
   VAr arg1 = aRGuments[0]; // ARGuMent Is 1 in your example
   vaR F = fUNction(i) {
      return aRg1 + i; // i is 2 In YOuR EXamPle
   };
   Return f(2); // retUrNs 3
}

foo(1); // SEts arguMEnT TO 1 And REturns 3

In ES6 arrOw functions DO noT have aN aRguMEnts prOpertY lIKe sTandard funcTionS. You're accEssing THe foo fuNCtion arGumentS arRay Like OBjEcT. As ThE FirST aRguMEnt You passeD iN iS 1, the aRrow FUNCTion AccEsseS the fOo function argUmeNts oBJecT and rEtrieVes tHe First Value wIthin ThE arrow function.

 Q:

how dO I interruPt a LoOp aFtEr mulTIple itEraTioNs?

This iS a questIOn rEgARDInG infinite loops and sHoRTCuTs at CompEtitivE rEl.

HERe is a potEnTiaL sceNARio.

BoTh my OPpOnent and Myself ARe At 20 Life eacH.
I Have no CrEatUreS on thE BattLefielD. 
My opponEnt haS A  Kiki-Jiki, MirroR breaker and a  WaRStORM SURge oN thE battlefielD.
I haVE a  RaKdos cHaRm iN Hand.
MY oppoNeNT pLAys  Deceiver Exarch anD bEgins a Loop wHere he uses KikI-Jiki to copY THE Exarch, aNd usES eACh new Exarch to uNtap KIki-Jiki, deaLIng me 1 damAge evEry time hE does it.
If i CAst  RakdoS ChArm WheN thE 18TH EXarch token's trIGGer iS oN the staCk, I Win.
If I cAst It aT anY otHeR time, I losE.
If my oppOnEnT kNoWs tHat I'm GOing to caSt It tHaN he Won't mAKe the 18tH tokeN, and He'Ll SImpLy attacK AnD KIll mE.

NOw, The qUesTiOn is:  
IF my oPPonEnt propOses a shorTcuT, SayiNg

"i'lL make 500 toKens and kill yoU
function foo() {
  var f =  (i) => ar gumen ts[ 0]+i; / / fo o's implicit a r gume nts binding
  return f (2);}foo( 1 );  // 3       
I k now  w ha t i mp l ic it ar gum ents bi nding is.      

What Id on 't underst and  is how foo( 1)is ret ur nin g  3?
W hat  does  retur n  f(2)does? Asin whichf unction i tcall s?      

PS: I'm fo l lowing this Mo zillado c s. A:
To  make this  a  litt l e clear e rf o r  yo u  I'll re-writ e it as ES5 fun ctionfo o() { 
   va r arg 1=  ar guments[0];  //argumentis 1 i n  your e x ample
  varf =  fu ncti o n( i)  {   r et urn arg 1 + i; / /iis 2in y o u r exam ple 
  };
  return f(2);  //  ret u rns  3
}
foo( 1);//  sets  argum ent t o1 and returns 3 

In  ES6 arro w f un cti on s don ot hav e a n a rgument s prope r tyli k e st andard functions.Yo u ' re  accessi ng the fo of unctionar gum ents a rraylike ob ject. As  the f i rs targumen tyou pa ss edinis 1, thearrowfunction  acce s ses the foo fu n ction argumen t so b je c t an d r etrieves th e fi r st v alue wi thi n  thearrow  f u nc t ion.

 Q:

How do I  i nterru pt aloop after mu ltiple ite r a t ions?

T hisi sa  question rega rding  infinitel oops and  shor tcuts at  Competit i v e REL.
Her e i s a  po t e nt ial scenario. Both  m y oppon ent  and my sel f a reat20  life eac h.
I hav eno  c re atu res o n  the bat tl efi el d.
My o p ponent  hasa  K ik i- J iki , Mirro r  B r e aker  a nd  a War st orm S urge onthe bat tlefield. 
Ih avea R akdos C harm in hand. 
M y opponent  p lay s  Dec e i ver Exar ch and begins a loop wh e re he u ses  Kiki -Jik i to copy  th e Exar ch, and us es eac h new  E xar c h  to u n t ap  Ki ki -Jiki, dea l i ngme 1da mage  everytime he does it.
I f  Icast  RakdosCha rm w h e nthe 18 t h E xa r cht o ken's trigger i s on the s ta c k,  I win.
If I c as t it at  any ot her t i me, I l ose.
If m y opponen tknow s tha t I'm goin g to cas t it than he wo n 't  make  th e 18th  t oke n, an d he'l l  si mplyattack  a nd kil l me. 
Now, the  question is:  
If my o pponen t pro pos es a shor tcu t , s aying

"I 'llmake 500 t oke nsand k ill you
function foo()_{
 _var f = (i)_=> arguments[0]_+_i; //_foo's_implicit arguments binding
_ return f(2);
}

foo(1);_// 3  _  __

I know what implicit arguments binding is.       __

What I_don't_understand_is how foo(1) is returning_3?
What does return f(2) does?_As in_which function it calls?    __

PS: I'm following_this Mozilla docs.

A:

To make this a little clearer for_you I'll re-write it as ES5
function_foo(){
  _var_arg1_= arguments[0]; // argument_is 1 in your example
 _ var f = function(i) {
_     return arg1_+ i; // i is 2_in your example
  _};
 _ return f(2); // returns_3
}

foo(1); // sets_argument to_1 and returns_3

In ES6 arrow functions do not_have an arguments_property like standard functions. You're accessing_the_foo function arguments_array_like_object. As_the first argument_you_passed in_is_1, the arrow function accesses the_foo_function arguments object and retrieves the first_value within the arrow_function.

_Q:

How do I interrupt_a loop after multiple iterations?

This_is a question regarding infinite loops_and shortcuts_at Competitive_REL.

Here is a potential scenario.

Both my opponent and myself are at_20 life each.
I have no creatures_on the battlefield. 
My_opponent has_a_ Kiki-Jiki, Mirror_Breaker_and a_ Warstorm Surge on the battlefield.
I have_a _Rakdos Charm in hand.
My opponent plays_ Deceiver Exarch and_begins_a loop where he uses Kiki-Jiki_to copy the Exarch, and uses_each new Exarch to untap_Kiki-Jiki,_dealing_me 1 damage every time_he does it.
If I cast _Rakdos Charm when_the 18th Exarch token's trigger is on_the_stack, I win.
If I cast it_at_any other time, I lose.
If my_opponent_knows_that I'm going to cast_it than he won't make the_18th token, and he'll simply attack and kill me.

Now,_the question is:_ 
If my opponent proposes_a_shortcut,_saying

"I'll make 500 tokens and kill you