;#
adalah bahasa yang sangat sederhana. Ini memiliki 2 perintah:
;
akan menambah akumulator#
mengeluarkan modulo 127 akumulator, dan kemudian mengatur ulang akumulator
;$
juga sangat sederhana dan sangat mirip (dan juga belum ada). Ini memiliki 2 perintah:
;
akan menambah akumulator$
mengeluarkan modulo akumulator 127. Namun, itu tidak mengatur ulang akumulator.
Tantangan
Buat program yang akan mengonversi ;#
kode ke ;$
kode. Artinya, diberi input a
menggunakan metode standar, output terpendek b
sedemikian sehingga a
dalam ;#
output hal yang sama seperti b
dalam ;$
. Input hanya akan berisi karakter ';'
dan '#'
. Input tidak akan memiliki tanda titik koma. Artinya, itu akan cocok dengan regex (;*#)+
. Ini juga berarti input tidak akan kosong. Perhatikan bahwa ;;;;##
itu mungkin (setara dengan ord(4) ord(0)
).
Contohnya
;# code -> ;$ code
;;;;;;;;;;#;;;;;;;;;;;;# -> ;;;;;;;;;;$;;$
;;;;;;;;;;;;;;#;;;# -> ;;;;;;;;;;;;;;$;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;# -> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$;;;;;;;$$;;;$;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$;;;;;;;;;;;;;;;;;;;;;;;;$;;;$;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$ (Hello, World!)
;#
pertanyaan yang beredar. Mereka tidak terlalu menarik.;#
tantangan sebelumnya ; itu yang pertama setelah kompiler dan IIRC transpiler.;#
input terpendek?Jawaban:
JavaScript (ES6), 68 byte
Contohnya
Tampilkan cuplikan kode
sumber
Jelly , 18 byte
Cobalah online!
Bagaimana itu bekerja
sumber
PHP, 99 byte
sumber
J , 37 byte
Cobalah online!
sumber
Python,
1011009785 byte1 byte disimpan berkat @WheatWizard
sumber
)
danfor
Retina , 52 byte
Cobalah online! Termasuk test suite. Penjelasan: 127 ditambahkan ke masing
#
- masing untuk membuat modulo pengurangan 127 lebih mudah; yang#
s berubah menjadi$
pada waktu yang sama. Subtraction itu sendiri ditangani oleh lookbehind(?<=\$\1(;{127})?\$\1)
yang memastikan bahwa kita mengurangi jumlah;
s antara dua#
s sebelumnya (yang menangani case ketika ada lebih banyak;
s) atau 127 lebih sedikit dari jumlah itu (yang menangani case ketika ada lebih sedikit;
s dan mereka harus melewati 127). Tampilan di belakang digunakan sehingga semua penggantian dapat dihitung dalam satu pass. Agar selalu ada dua#
s sebelumnya , dua#
s tambahan diawali sementara.sumber
Perl 5
-p
, 65 byteCobalah online!
sumber