Tugas Anda adalah menampilkan string yang tepat
The Jabberwocky
tanpa mengambil input. Aturan normal untuk input dan output berlaku, sehingga fungsi dan program diizinkan.
Tentu saja ada tangkapan, itu tidak akan menyenangkan tanpa tangkapan. Program Anda, ketika dilucuti karakter non-alfabet, harus memulai puisi The Jabberwocky (case-sensitive). Untuk memulai puisi itu harus substring terus menerus dari puisi itu dimulai dari awal. String kosong baik-baik saja (walaupun Anda mungkin tidak akan skor sangat baik).
Ini adalah teks untuk referensi:
twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethejabberwockmysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestoodthejabberwockwitheyesofflamecamewhifflingthroughthetulgeywoodandburbledasitcameonetwoonetwoandthroughandthroughthevorpalbladewentsnickersnackheleftitdeadandwithitsheadhewentgalumphingbackandhastthouslainthejabberwockcometomyarmsmybeamishboyofrabjousdaycalloohcallayhechortledinhisjoytwasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabe
Berikut adalah program yang dapat Anda gunakan untuk menguji properti ini.
Jika Anda kehabisan puisi untuk digunakan, Anda tidak dapat menggunakan karakter alfabet tambahan.
Karakter alfabet adalah karakter a
- z
dan A
- Z
ini daftar lengkapnya:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Mencetak gol
Program Anda akan dinilai dalam jumlah byte non-alfabet yang digunakan dengan lebih sedikit lebih baik.
Berikut adalah program Haskell yang mencetak jawaban. (Ini mengasumsikan input valid)
Contoh program
Program berikut ini akan valid:
twas&*brilliga77812nd Thesli thyt Oves didgy reand Gim bleinth ewab eal lmims ywe""""""""
ret h eb or o g o ve sa n dthemomerAthsoutgrabebewaretheJABBERWOCKmysonthe)(*)()((*98980908(()*(jawsthatbit
Ketika dilucuti ke karakter alfabet itu adalah:
twasbrilligandTheslithytOvesdidgyreandGimbleinthewabeallmimsyweretheb orogovesandthemomerAthsoutgrabebewaretheJABBERWOCKmysonthejawsthatbit
Yang cocok dengan bit pertama dari puisi itu (case-sensitive).
Program ini akan mendapatkan skor 59 karena berisi karakter non-alfabet ini:
&*77812 """"""""
)(*)()((*98980908(()*(
sumber
Jabberwocky
(tanpa artikel), sedangkan nama binatang itu adalahthe Jabberwock
(tanpa no -y ). Tentu saja Anda tidak dapat mengubah output yang diperlukan sekarang, tapi ...Jawaban:
oOo CODE , skor 0
Terima kasih kepada Dennis untuk bermain golf kode Brainfuck.
Cobalah online!
Saya punya kabar buruk untuk tantangan ini ... :(
oOo CODE hanyalah penyandian biner dari brainfuck yang menggunakan huruf untuk setiap bit. Jadi ya, karena puisi itu cukup panjang (atau outputnya cukup pendek) untuk mencakup program Brainfuck yang mencetak
The Jabberwocky
(tanpa benar-benar berusaha keras untuk membuatnya), ini menjadi jawaban optimal yang sepele.sumber
C, skor
1047974Terima kasih kepada @gastropner karena menurunkan skor menjadi 79 dan terima kasih kepada @ wizzwizz4 karena menurunkannya lebih lanjut menjadi 74!
Cobalah online!
sumber
//abcdefgh\n
1 karakter lebih sedikit daripada/*abcdefgh*/
?Fisi 2 , skor 3
Cobalah online!
Penjelasan
Kita dapat mengabaikan sebagian besar huruf kecil, mereka hanya mengatur energi atom ke titik kode mereka.
Huruf besar
R
adalah titik masuk program, karena menciptakan atom ke kanan. Seperti yang saya katakan, kita bisa mengabaikane
. Kemudian"
matikan mode string, yang hanya mencetak semua karakter yang dijumpainya ke STDOUT, yang memberi kitaThe Jabberwock
. Itu hanya meninggalkany
. Kita dapat menggunakany
yang segera munculy
, tetapi kemudian kita harus membuang setidaknya satu byte non-huruf untuk mencetaknya (!
) dan mungkin yang lain untuk mengakhiri program.Sebaliknya, kami dengan sabar menunggu untuk
y
muncul segera sebelumo
di puisi itu. Karena itu mari kita gunakanO
yang mencetak karakter dan menghancurkan atom, mengakhiri program. Dengan cara ini, satu-satunya karakter non-huruf yang kita butuhkan adalah spasi dan dua kutipan.sumber
Alice , skor 7
Cobalah online!
The
/
membuat langkah IP diagonal dan mental dari tepi, sehingga petunjuk benar-benar dieksekusi yang"The "ono@
. Then
perintah (dalam mode ordinal) mendorong string "Jabberwocky" jika atas tumpukan kosong, dano
output atas tumpukan.sumber
Jelly , skor
64Program lengkap mencetak hasilnya
(sebagai tautan monadik yang dicetaknya
The Jabberwock
sebagai efek samping dan mengembalikan karaktery
)Menyisipkan karakter
“ ””
ke dalam awalan puisi yang diubah.Ini berfungsi karena:
Yang terakhir
h
sebelumnyaSOUTGRABEBEWARE“The Jabberwock”m”y
adalah (setidaknya pada saat penulisan!) Sebuah atom yang tidak terdefinisi, yang menjadikan semuanya menjadi tautan baru yang mengambil input default0
dan melakukan beberapa fungsi monadikSOUTGRABEBEWARE
,, yang menghasilkan1
(lihat di bawah).1“The Jabberwock”m
kemudian melakukanm
, memotong modulo, pada"The Jabberwock"
dengan ukuran irisan1
, menghasilkan"The Jabberwock"
.Trailing
”y
adalah rantai konstan terkemuka baru sehingga Jelly mencetak daftar karakter dan kemudian menghasilkan karaktery
, dan karena sekarang akhir dari program ini maka akan dicetak.6 byter sebelumnya:
Cobalah online!
Enam karakter non-puisi adalah plus baris baru
“ ”1“
.6s alternatif:
sumber
m1“y
? Masih mencetakThe Jabberwock
dan mulai dengan bagian dari puisim1“y
(atau bisa jadim1”y
) diperlukan karena kita harus mencetakThe Jabberwocky
, bukanThe Jabberwock
.Arang , skor 3
Cobalah online!
Memasukkan tiga karakter:
⎚ ⌈
... itu juga bekerja dengan seluruh puisi .
Bagaimana?
sumber
Ruby (
-p
), Skor 12Cobalah online!
Menyalahgunakan semua komentar!
Dengan
-p
bendera, ruby akan mencetak apa pun yang disimpan di$_
. Membutuhkan satu baris input apa pun.sumber
-p
sini, karena jalur input yang diperlukan. "Tugas Anda adalah menampilkan string yang tepatThe Jabberwocky
tanpa mengambil input."-p
adalah flag baris perintah, bukan input.Arang , skor:
54Cobalah online! Sunting: Disimpan 1 byte berkat hanya @ ASCII. Penjelasan: Menerjemahkan ke kode verbose berikut:
sumber
Foo , skor 5
Cobalah online!
sumber
> <> , Nilai:
1312Cobalah online!
Verifikasi dan penilaian .
Segera dialihkan ke baris kedua, yang mendorong "The Jabberwockmy" terbalik ke tumpukan.
$~
muncul kelebihanm
dan>ro<
mencetak seluruh tumpukan, membalikkannya sebelumnya.sumber
Retina 0.8.2 , skor:
212018161386Cobalah online! Sunting: Skor dikurangi 2 berkat @MartinEnder.
sumber
*
alih-alih$*
).C, skor 23
Cobalah online!
sumber
Yabasic , 13
Terima kasih atas jawaban Ruby @ Pavel!
Cobalah online!
sumber
VBA, skor 5
Jalankan di Jendela Segera:
Bagaimana itu bekerja:
-
-
-
-
-
1 tanda tanya, 1 spasi dan 3 tanda kutip ganda. VBA melihat ini sebagai
?"" & "The Jabberwock" & "" & "y"
atau?"The Jabberwocky"
sumber
Haskell , skor 12
Cobalah online!
Menentukan fungsi argumen-nol
twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware :: String
yang outputnya adalah"The Jabberwocky"
.sumber
Java (OpenJDK 9) , skor 11
Cobalah online!
Kredit
sumber
()
ket
(Void
parameter nol yang tidak digunakan ), dan menghapus yang memimpint
dari komentar.<s>16</s> 14
Saya lebih suka, seperti biasa di jaringan StackExchange apa pun untuk memberikan jawaban akhir. Perubahan itu sendiri tercantum di halaman revisi , sehingga mudah bagi semua orang untuk melihat perubahan yang sebenarnya, dan bagaimana jawabannya berkembang dari waktu ke waktu, daripada menempatkan semua informasi masa lalu dan saat ini dalam satu pos besar yang tidak dapat dibaca.PowerShell , Nilai:
1910Cobalah online!
Port of Pavel's Ruby menjawab . Terima kasih kepada Jo King untuk -9 poin.
Senar
+
digabungkan bersama. Setelah komentar dihapus dan kode diuraikan, PowerShell melihat ini sebagai'The Jabberwock'+'y'
. String itu ditinggalkan di pipeline dan outputnya implisit.sumber
The
danJabberwock
menjadi satu string? Cobalah online!Jelly , skor: 8
Cobalah online!
Hanya kompres string, dan merupakan string kosong ketika semua karakter non-alfabet dihapus. Anehnya, bentuk terkompresi terpendek,
“81Iȯd»
memiliki karakter alfabet, tidak ada yangt
atauw
sumber
Stax , 11
Jalankan dan debug online!
Hanya string literal terkompresi yang pada gilirannya dikemas.
sumber
05AB1E , skor 14
Cobalah online!
sumber
Kanvas , skor 5
Coba di sini!
sumber
SOGL V0.12 , skor 9
Coba Di Sini!
sumber
Pip , skor 5
Cobalah online!
Untungnya, huruf kecil dalam Pip adalah semua variabel, yang tidak boleh op dalam ekspresi sendiri. Bagian yang menarik dari kode:
Pemindai terputus
OOD
seperti yangO
diikuti olehOD
.OD
adalah variabel yang tidak terdefinisi, yang dievaluasi sebagai nil (falsey); kita kemudian logis-atau ini dengan"The Jabberwock"
, danO
mengeluarkannya tanpa baris baru.String karakter tunggal
y
. Karena ini adalah ekspresi terakhir dalam program, ia dicetak.sumber
SmileBASIC, skor 10
Ini cukup banyak diambil langsung dari jawaban Yabasic, dan
karena SB adalah bahasa yang lebih baik,kita dapat mempersingkatnya dengan menggunakan label daripada komentar, yang menghilangkan kebutuhan untuk beberapa jeda barisAda juga solusi alternatif ini, untuk ukuran yang sama:
Label di dalam ekspresi diperlakukan sebagai string. (
@my == "@my"
), jadi mengambil karakter 2 memberi "y".sumber
C (gcc) , skor 58
Fakta berguna bahwa // style comment + newlines lebih murah daripada style lama datang langsung dari komentar @ wizzwizz4 untuk @ Steadybox's jawaban .
Bendera -m32 diperlukan.
Beberapa mungkin dibawa ke suasana hati yang berapi-api dengan nama panjang fungsi untuk memanggil, sedangkan yang lain mungkin benar menemukan keberatan seperti mimsy; pada akhirnya, kita semua harus memperhatikan lagu sirene skor rendah.
Cobalah online!
sumber
Batch, skor
1511Pada dasarnya adil
echo The Jabberwocky
dengan variabel dan label yang tidak digunakan.Versi lama (skor 24):
Membutuhkan kode untuk disimpan dalam file bernama
n.bat
dan dijalankan dari direktori yang sama.Versi alternatif yang dapat memiliki nama apa saja (skor 27):
Penjelasan (dengan variabel dihapus):
sumber
Perl 5, subroutine, skor 11
tetapi dengan karakter \ x86 (
v134
) bukannya X.(perlsub mengatakan, "Tanda tangan adalah bagian dari tubuh subrutin. Biasanya tubuh subrutin hanyalah blok kode yang diperkuat.")
sumber
y
?Ruby , 9 byte bukan huruf
Cobalah online!
Versi golf (untuk keterbacaan):
Menggunakan beberapa variabel yang panjang dan tidak berguna. Di ruby, Anda bisa meletakkan
whatever_you_want=
sebelum ekspresi, dan itu masih akan mengembalikan ekspresi itu, hanya dengan efek samping membuat variabel yang diberi nama aneh.sumber
Brainfuck yang memodifikasi sendiri , skor 16
Cobalah online!
Penjelasan
Awalnya rekaman itu diatur seperti ini:
Karena kita ingin pindah ke awal string kita menggunakan␀ karakter .
<[<<]
sedemikian rupa sehingga kita melompati pertama>
[.>]
>>.
.sumber
Pembelahan , skor 6
Cobalah online!
sumber