D'après ce que j'ai vu tout au long de mon séjour ici sur PPCG, la plupart des entrées JavaScript impliquant des fonctions de flèche grasse ont tendance à être l'un des deux camps:
Les simples qui sont capables de fonctionner comme une seule déclaration et de retourner une réponse, tout de suite, comme
x=(a,b)=>a*a+b
Les plus complexes qui ont généralement des accolades en raison de l'utilisation de boucles, et nécessitent par conséquent l'utilisation d'une
return
instruction .. commep=b=>{m=b;for(a=1;~-m;)--m,a*=m*m;return a%b}
En prenant l'exemple ci-dessus de la catégorie 2 avec le concept d'accolades comme preuve de concept ... Y aurait-il un moyen de rejouer ce code (ou similaire) comme celui-ci afin d'éliminer les accolades ainsi que le return
? Je pose seulement cette question car cela pourrait potentiellement (ne pas dire que cela se produira tout le temps) éliminer 8 octets du code d'un golfeur JS. Y a-t-il des techniques que l'on pourrait utiliser dans ce cas? J'ai essayé la récursivité, mais la m=b
déclaration s'est avérée être un peu un bugbear, car je n'arrive pas à la secouer.
Pour le code ci-dessus, comment golferait-on plus loin afin d'éliminer la return
déclaration, qu'il joue au golf plus court ou non?
~-m
estm-1
, donc la boucle peut êtrefor(m=b,a=1;--m;a*=m*m)a%b;
et la version récursive peut être (non testée)b=>(f=a=>--m?f(a*=m*m):a%b)(1,m=b)