Por lo que he visto durante mi tiempo aquí en PPCG, la mayoría de las entradas de JavaScript que involucran funciones de flecha gruesa tienden a ser uno de dos campos:
Los simples que son capaces de ejecutarse como una sola declaración y devolver una respuesta, de inmediato, como
x=(a,b)=>a*a+b
Los más complejos que generalmente tienen llaves debido al uso de bucles, y como resultado requieren el uso de una
return
declaración ... comop=b=>{m=b;for(a=1;~-m;)--m,a*=m*m;return a%b}
Tomando el ejemplo anterior de la categoría 2 con el concepto de llaves como prueba de concepto ... ¿Habría una forma de re-golf este código (o similar) como este para eliminar las llaves y el return
? Solo pregunto esto, ya que esto podría potencialmente (sin decir que esto sucederá todo el tiempo) eliminar 8 bytes del código de un golfista JS. ¿Hay alguna técnica que se pueda usar en este caso? He intentado la recursividad, pero la m=b
declaración ha demostrado ser un poco aburrida, ya que parece que no puedo sacudirla.
Para el código anterior, ¿cómo se puede jugar más golf para eliminar la return
afirmación, independientemente de si el golf es más corto o no?
~-m
es decirm-1
, el bucle puede serfor(m=b,a=1;--m;a*=m*m)a%b;
y la versión recursiva puede ser (no probada)b=>(f=a=>--m?f(a*=m*m):a%b)(1,m=b)