З того, що я бачив протягом свого часу тут, на PPCG, більшість записів JavaScript, що включають функції жирної стрілки, як правило, є одним з двох таборів:
Прості, які здатні виконувати як одне твердження, так і повертати відповідь, прямо з бати, як
x=(a,b)=>a*a+b
Більш складні, які зазвичай мають фігурні дужки через використання циклів, і як результат вимагають використання
return
оператора ..p=b=>{m=b;for(a=1;~-m;)--m,a*=m*m;return a%b}
Беручи вищенаведений приклад із категорії 2 із концепцією фігурних брекетів як доказової концепції ... Чи існував би спосіб повторного гольфу цього коду (чи подібного), як цей, щоб усунути фігурні дужки, а також return
? Я запитую лише це, оскільки це може потенційно (не кажучи, що це буде постійно) усунути 8 байт з коду гольфіста JS. Чи існують методи, які можна було б використовувати в цьому випадку? Я спробував рекурсію, але це m=b
твердження виявилося трохи помилкою, тому що я не можу це похитнути.
Щодо вищенаведеного коду, як би подати гольф, щоб усунути return
твердження, незалежно від того, чи це гольфи коротше чи ні?
~-m
єm-1
, тому цикл може бути,for(m=b,a=1;--m;a*=m*m)a%b;
і рекурсивна версія може бути (неперевірена)b=>(f=a=>--m?f(a*=m*m):a%b)(1,m=b)