Da quello che ho visto durante il mio periodo qui su PPCG, la maggior parte delle voci JavaScript che coinvolgono le funzioni di freccia grassa tendono ad essere uno dei due campi:
Quelli semplici che sono in grado di funzionare come una singola istruzione e restituire una risposta, immediatamente, come
x=(a,b)=>a*a+b
Quelli più complessi che di solito hanno parentesi graffe a causa dell'uso di anelli e, di conseguenza, richiedono l'uso di
return
un'istruzione .. comep=b=>{m=b;for(a=1;~-m;)--m,a*=m*m;return a%b}
Prendendo l'esempio sopra dalla categoria 2 con il concetto di parentesi graffe come prova di concetto ... Ci sarebbe un modo per re-golf questo codice (o simile) in questo modo in modo da eliminare le parentesi graffe e il return
? Lo sto chiedendo solo perché questo potrebbe potenzialmente (non dire che accadrà sempre) eliminare 8 byte dal codice di un giocatore JS. Ci sono delle tecniche che si potrebbero usare in questo caso? Ho provato la ricorsione, ma l' m=b
affermazione si è rivelata un po 'problematica, dato che non riesco a scuoterla.
Per il codice di cui sopra, come si potrebbe golf ulteriormente così da eliminare l' return
affermazione, indipendentemente dal fatto che il golf sia più corto o meno?
~-m
èm-1
, quindi il ciclo può esserefor(m=b,a=1;--m;a*=m*m)a%b;
e la versione ricorsiva può essere (non testata)b=>(f=a=>--m?f(a*=m*m):a%b)(1,m=b)