Dari apa yang saya lihat sepanjang waktu saya di PPCG, sebagian besar entri JavaScript yang melibatkan fungsi panah gemuk cenderung menjadi salah satu dari dua kubu:
Yang sederhana yang mampu berjalan sebagai pernyataan tunggal dan mengembalikan jawaban, langsung dari kelelawar, seperti
x=(a,b)=>a*a+b
Yang lebih kompleks yang biasanya memiliki kurung kurawal karena penggunaan loop, dan akibatnya memerlukan penggunaan a
return
pernyataan .. sepertip=b=>{m=b;for(a=1;~-m;)--m,a*=m*m;return a%b}
Mengambil contoh di atas dari kategori 2 dengan konsep kurung kurawal sebagai bukti konsep ... Apakah akan ada cara untuk melakukan golf ulang kode ini (atau serupa) seperti ini untuk menghilangkan kurung kurawal dan juga return
? Saya hanya menanyakan ini karena ini berpotensi (tidak mengatakan ini akan terjadi setiap saat) menghilangkan 8 byte dari kode pegolf JS. Apakah ada teknik yang bisa digunakan dalam hal ini? Saya sudah mencoba rekursi, tetapi m=b
pernyataan itu telah terbukti sebagai momok, karena sepertinya saya tidak bisa mengguncangnya.
Untuk kode di atas, bagaimana satu golf lebih jauh sehingga menghilangkan return
pernyataan, terlepas dari apakah golf lebih pendek atau tidak?
~-m
adalahm-1
, sehingga loop dapatfor(m=b,a=1;--m;a*=m*m)a%b;
dan versi rekursif dapat (belum diuji)b=>(f=a=>--m?f(a*=m*m):a%b)(1,m=b)