7 , 10 byte, 27 karakter
115160723426754314105574033
Cobalah online!
Representasi paket program ini pada disk adalah ( xxd
format):
00000000: 269c 3a71 6f63 308b 7c0d &.:qoc0.|.
Penjelasan
Kami telah melihat urutan angka-angka ini sebelumnya, di Automate Saving the World , yang tentang mencetak angka secara berkala, membuatnya menarik dengan mengharuskan penggunaan bahasa yang sangat lama. Banyak bahasa yang lebih baru dapat memiliki tikungannya sendiri yang membuat tantangan ini menarik.(Ya, paragraf ini, dan sebenarnya alasan saya mulai menulis jawaban ini, secara efektif hanyalah cara untuk mendapatkan semua tantangan terkait untuk muncul bersama di sidebar; biasanya orang melakukan itu menggunakan komentar tetapi saya tidak memiliki cukup perwakilan .)
Hal pertama yang perlu diperhatikan adalah bahwa 7 seluruhnya terbuat dari digit, jadi pergi untuk bonus di sini tidak akan berhasil (walaupun jika Anda melihat program sebagai urutan oktet, tidak ada yang sesuai dengan representasi ASCII dari salah satu angka asli , jadi Anda bisa mengklaim bonus dalam arti itu). Hal berikutnya yang perlu diperhatikan adalah bahwa 7 memiliki perintah untuk membuat ulang urutan perintah yang kemungkinan telah menghasilkan data tertentu; jadi mungkin kita bisa menafsirkan angka yang Hilang4815162342
sebagai bagian dari program 7 itu sendiri?
Jawabannya adalah "tidak cukup". Bagian yang paling bermasalah adalah nomor kedua itu,8
,. 7 program ditulis dalam oktal; tidak ada angka 8. Jadi, awal string harus dicetak secara berbeda.
Dasar dari program ini berdasarkan pada program 7 "Hello world":
5431410557403
543141055 string literal
7 separate data from code
4 rearrange stack: {program's source}, empty element, {literal}
0 escape {the literal}, appending it to {the empty element}
3 output {the escaped literal}, pop {the program's source}
dengan literal yang lolos dalam bahasa khusus domain yang ditafsirkan sebagai berikut:
5 output format: US-TTY using pairs of digits in the string
43 select character set: digits and common symbols
14 "4"
10 "8"
55 forget the set output format
Setelah ini muncul tambahan 3
, yang menampilkan elemen tumpukan yang tersisa (dan keluar karena tumpukan yang tersisa tidak cukup). Elemen itu ditentukan pada awal program, dan untuk menghindari yang tak tertandingi 6
(yang bekerja sedikit seperti braket penutup), kami membuatnya menggunakan kode, daripada menuliskannya langsung sebagai data. (Perhatikan bahwa ada dua 7
karakter tersirat pada awal program, yang relevan di sini):
{77}115160723426
7 empty stack element
7 11516 append "1151"
0 append "6"
723246 append "2324"
Itu menghasilkan literal berikut:
115162324
1 set output format: literally as octal
15162324 "15162324"
yang akan dicetak.