Jolf adalah bahasa golf prosedural yang dibuat oleh @ CᴏɴᴏʀO'Bʀɪᴇɴ.
Kiat apa yang Anda miliki untuk bermain golf di Jolf?
Silakan kirim satu tip per jawaban.
Kiat-kiat ini harus setidaknya agak spesifik untuk Jolf, mis. Menghapus komentar adalah jawaban, tetapi bukan yang sangat bagus.
Jawaban:
JavaScript mundur
Jika karena alasan yang aneh Jolf tidak cukup golf, atau tidak bisa mengatasinya, mungkin berguna untuk menggunakan JavaScript eval. Ini bisa terjadi dalam satu dari dua cara.
1. Eval yang dirancang
Apa pun di dalam
$...$
secara harfiah dibawa ke transpilasi JS. Misalnya,+3$~$5
mentranslil keadd(3, ~5)
. Setara+3:~5
,.2. Array eval
Anda dapat menggunakan array JS di Jolf! Kebanyakan. Ini semacam bug, tapi saya tidak akan memperbaikinya. Sebagai contoh:
Transpile ke:
sumber
Ketahui variabel penetapan otomatis Anda!
Jolf memiliki banyak cara untuk "menetapkan secara otomatis" variabel. Yang standar adalah
γ
, yang mengambil nilai dari ekspresi berikutnya.Β
adalah hal yang sama, tetapi mengubah ekspresi selanjutnya menjadi angka.Juga,
ζ
(zeta) adalah variabel yang diinisialisasi ke-1/12
(tebak mengapa), dan dapat ditugaskan kembali denganΖ
(Zeta).Misalnya, katakanlah Anda ingin membandingkan
I
(string input) dengan operasi pada dirinya sendiri. Untuk saat ini, mari kita lihat apakahI + I = reverse(I + I)
. Ini ditulis sebagai, secara konvensional:Tapi ini bisa di mainkan ke:
sumber
Menggunakan
@
@
adalah perintah yang mengambil karakter berikutnya dalam kode sumber dan mengembalikan titik kode karakter itu. (Misalnya,@X
mengembalikan 88.) Ini sering sangat berguna karena Anda dapat mengekspresikan angka apa pun antara 0 dan 255 dalam dua byte.sumber
10
sebenarnya adalah angka1
dan0
bukan angka10
, jadi lebih seperti 10-255.Baca sumbernya
Sampai sekarang, ada banyak hal tidak berdokumen -
m
modul misterius di antara mereka, yang memiliki banyak builtin. Namun, mereka ada di sumbernya, dan itu benar-benar tidak sulit untuk dibaca begitu Anda sudah terbiasa, jadi baca sumbernya.sumber
m
ysteriousm
modul ath.m
Odule. (6 lebih lanjut ...)Tingkatkan Arity Fungsi
Setiap fungsi memiliki arity. Misalnya,
+
memiliki arity 2. Jika Anda ingin (mengatakan) menambahkan 5 elemen, Anda bisa menggunakan 5+ ... atau lakukan+θ12345
. Secara khusus:θ
menambah arity fungsi dengan 3.~θ
meningkatkan arity dari fungsi induk oleh 3. (Jadi*+~θ345678
meningkatkan arity*
oleh 3)M
meningkatkan arity dari fungsi sebesar 2.~M
meningkatkan arity dari fungsi induk sebesar 2.;
meningkatkan arity dari fungsi sebesar 1.~;
meningkatkan arity dari fungsi induk sebesar 1.η
mengurangi arity dari fungsi sebesar 1.~η
mengurangi arity dari fungsi induk dengan 1.\xad
menyetel arity dari fungsi induk ke karakter kode berikutnya.sumber
*+~θ
atas*θ+
?~<char>
.Manfaatkan input implisit
Jika suatu fungsi tidak memiliki cukup argumen, ia akan mencari input untuk sisa argumen. Sebagai contoh:
Akan transpile ke:
Ini setara dengan
sumber
Gunakan
o
untuk menyimpan nilaiMirip dengan bagaimana bahasa lain dapat menetapkan variabel untuk referensi mudah / pendek, Jolf memiliki
o
.Misalnya,
oThx
mencetak input plus 1.Ini adalah contoh yang tidak berguna, tetapi ketika ekspresi lebih rumit daripada
hx
, itu dapat menghemat beberapa byte yang serius.Juga,
v"var name"<val>
memungkinkan untuk nama variabel multi-char, danV"var name"
mendapatkan variabel dari ruang lingkup.Terima kasih kepada Conor karena menjelaskan ini kepadaku, dan memberikan kalimat sebelumnya.
sumber
v"var name"<val>
memungkinkan untuk nama variabel multi-char, danV"var name"
mendapatkan variabel dari ruang lingkup.o
menjadi variabel penugasan