Wise adalah bahasa bitwise sederhana yang saya rancang beberapa waktu lalu. Hal ini didasarkan pada operasi bitwise Python . Ini memiliki beberapa operasi sebagian besar adalah sama atau sangat mirip dengan simbol yang setara dengan Python.
:
Gandakan bagian atas tumpukan?
Putar bagian atas tumpukan ke bawah!
Putar bagian bawah tumpukan ke atas[
]
lingkaran sementara bagian atas tumpukan tidak nol~
bukan bagian atas tumpukan (-(n+1)
)-
negasikan bagian atas tumpukan (-n
)>
bitshift bagian atas tumpukan satu kali ke kanan (n//2
)<
bithift bagian atas tumpukan sekali ke kiri (n*2
)^
xor dua item teratas dari tumpukan ( Sama seperti Python )|
atau dua item teratas dari tumpukan ( Sama seperti Python )&
dan dua item teratas dari tumpukan ( Sama seperti Python )
Membuat bilangan bulat di Wise cukup sederhana, Anda dapat membuat nol dengan ::^
dan menambahkannya dengan ~-
sehingga Anda membuat nol dan menambahnya beberapa kali. Namun jika kita menghapus -
hal - hal menjadi sedikit lebih menarik.
Kami masih dapat membuat setiap angka menggunakan operasi yang tersisa. Misalnya di sini adalah 3
~<<~
Ini bekerja karena ~
mengubah nol, string 0
bit tak terbatas , menjadi negatif, string tak terbatas 1
bit, masing-masing <
menambahkan 0
sedikit ke akhir, ketika kita selesai kita lakukan ~
yang mengubahnya masing-masing menjadi string 0
s diikuti oleh dua 1
s , atau seperti kebanyakan orang menyebutnya 3.
Tugas
Tulis sebuah program yang ketika diberi bilangan bulat positif akan menampilkan program Wise yang akan membuat angka n
tanpa -
sumbernya (sumber output, Anda dapat menggunakan -
sumber Anda sendiri). Anda dapat berasumsi bahwa sudah ada nol di atas tumpukan.
Ini adalah kode-golf bukan meta-golf sehingga Anda harus bertujuan untuk meminimalkan kode sumber yang menghasilkan belum tentu output.
Keluaran contoh
Daftar ini tidak lengkap mereka hanya mungkin keluaran
1 -> ~<~
2 -> ~<~<
3 -> ~<<~
4 -> ~<~<<
5 -> ~<~:<<|
6 -> ~<<~<
7 -> ~<<<~
8 -> ~<~<<<
9 -> ~<~:<<<|
10 -> ~<~:<<|<
11 -> ~<<~:><<<|
12 -> ~<<~<<
13 -> ~<<~:<<<|>
14 -> ~<<<~<
15 -> ~<<<<~
16 -> ~<~<<<<
:
diterapkan pada tumpukan kosong mendorong a 0
. Saya pikir ini harus ditentukan, karena tidak jelas bahwa duplikasi dari tumpukan kosong harus memberikan0
positive integers