Tips untuk bermain golf di Jolf


12

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.


Selamat datang di situs ini, silakan baca halaman Cara Meminta dan halaman tur untuk informasi lebih lanjut.
Rɪᴋᴇʀ

Jawaban:


4

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$~$5mentranslil ke add(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:

u[3*5,5/6,(3+4)/5]

Transpile ke:

sum([2 * 3, 5 / 3, (3 + 4) / 5]);

1
Jika karena alasan yang aneh Jolf cukup golf (...?)
Erik the Outgolfer

@EriktheOutgolfer bukan **
Conor O'Brien

7

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 apakah I + I = reverse(I + I). Ini ditulis sebagai, secara konvensional:

=+II_+II

Tapi ini bisa di mainkan ke:

=γ+II_γ

Apakah -1/12 zeta Anda harus dilakukan dengan teori string? Saya tahu cara untuk menambahkan setiap nomor alami dan mendapatkan -1/12
DeepDeadpool

1
@ GeeyPhistor Teori string yang mana? Tapi ya, fungsi zeta di atas bilangan asli adalah -1/12.
Conor O'Brien

6

Menggunakan @

@adalah perintah yang mengambil karakter berikutnya dalam kode sumber dan mengembalikan titik kode karakter itu. (Misalnya, @Xmengembalikan 88.) Ini sering sangat berguna karena Anda dapat mengekspresikan angka apa pun antara 0 dan 255 dalam dua byte.


"antara 100 dan 255"
Leaky Nun

@ KennyLau Dalam Jolf, 10sebenarnya adalah angka 1dan 0bukan angka 10, jadi lebih seperti 10-255.
sebuah spaghetto

Begitu ya, terima kasih ..
Leaky Nun

4

Baca sumbernya

Sampai sekarang, ada banyak hal tidak berdokumen - mmodul 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.


1
The mysterious mmodul ath.
Conor O'Brien

1
mOdule. (6 lebih lanjut ...)
Leaky Nun

2

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 *+~θ345678meningkatkan 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.

Apa keuntungan dari *+~θatas *θ+?
user253751

@immibis Tidak ada dalam kasus itu, itu hanya ilustratif. Ada beberapa fungsi dalam Jolf yang melewatkan dua fungsi saat diuraikan. Kemudian, satu-satunya cara untuk mengakses arity fungsi atas adalah menggunakan ~<char>.
Conor O'Brien

2

Manfaatkan input implisit

Jika suatu fungsi tidak memiliki cukup argumen, ia akan mencari input untuk sisa argumen. Sebagai contoh:

+uz

Akan transpile ke:

add(sum(unaryRange(x)), x)

Ini setara dengan

+uzxx

1

Gunakan ountuk menyimpan nilai

Mirip dengan bagaimana bahasa lain dapat menetapkan variabel untuk referensi mudah / pendek, Jolf memiliki o.

Misalnya, oThxmencetak 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, dan V"var name"mendapatkan variabel dari ruang lingkup.

Terima kasih kepada Conor karena menjelaskan ini kepadaku, dan memberikan kalimat sebelumnya.


Perhatikan juga bahwa v"var name"<val>memungkinkan untuk nama variabel multi-char, dan V"var name"mendapatkan variabel dari ruang lingkup.
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ oh, jadi itu yang mereka lakukan. Menambahkan ke pos.
Rɪᴋᴇʀ

2
o Thx untuk tip ini: P
Downgoat

@ EᴀsᴛᴇʀʟʏIʀᴋ Pun omenjadi variabel penugasan
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ o, yeah ....
R
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.