Tulis program yang mencetak "Halo, Dunia!". Tetapi juga, jika Anda hanya mengambil karakter pertama, ketiga, kelima, dll dari program Anda, program yang dihasilkan masih harus mencetak "Halo, Dunia!".
Jika program Anda adalah:
abc
def
Seharusnya menampilkan "Halo, Dunia!", Tetapi seharusnya demikian
acdf
Tidak ada solusi dengan kurang dari 2 karakter.
code-golf
string
source-layout
hello-world
radiation-hardening
Leo Tenenbaum
sumber
sumber
Jawaban:
Python 3 , 61 byte
Cobalah online!
Menyalahgunakan fakta itu
print
merupakan fungsi di Python 3 :)Solusi paling tidak partisan Anda akan temukan di sini di PPCG.
Menjadi
sumber
[:]
benar - benar berhasil: o Bagus!Kardinal , 29 byte
Cobalah online!
Menghapus setiap karakter lain menghapus semua umpan baris, yang masih menghasilkan
Hello, World!
:Cobalah online!
Alasan ini berhasil adalah yang
%
menciptakan empat petunjuk instruksi, bergerak di masing-masing dari empat arah mata angin. IP yang meninggalkan kode sumber dihapus begitu saja. Jadi dalam kasus pertama, hanya IP selatan yang tersisa dan dalam kasus kedua, hanya IP timur akan tetap, semua yang lain hanya dijatuhkan. Dalam kedua kasus tersebut, program yang dijalankan adalah adil"Hello, World!
. Itu"
matikan mode string yang mana setiap sel hanya dicetak ke STDOUT. Kami tidak perlu mengakhiri string, karena meninggalkan kode sumber masih mengakhiri program.Perhatikan bahwa ide yang sama bekerja di Beeswax , menggunakan
*
bukan%
dan`
bukan"
(ini karena Beeswax sebagian besar terinspirasi oleh Cardinal tetapi menggunakan kisi heksagonal).Cobalah online! (vertikal) | | Cobalah online! (horisontal)
sumber
C, 125 byte
Cobalah online!
Dengan karakter genap dihapus:
Cobalah online!
sumber
Sebenarnya , 2 byte
Penjelasan:
H
, seperti yang Anda harapkan, mendorongHello, World!
ke tumpukan.Program utama (
HH
) akan menemukan yang pertamaH
dan mendorongHello, World!
ke tumpukan. Pada yang keduaH
, bagaimanapun, ia akan mencoba menggunakan dua argumen (karena stack harus kosong untuk mendorongHello, World!
) dan gagal. Namun, kesalahan ini akan diabaikan dan kemudianHello, World!
akan dicetak secara implisit.Program kedua (
H
) akan mendorongHello, World!
sekali, dan itu akan dicetak secara implisit.Ini mirip dengan jawaban 2-byte Fatalize, tetapi ini tidak benar-benar "menipu".
Cobalah online!
sumber
H
hanya akan mendorongHello, World!
tumpukan kosong, dan jika tumpukan tidak kosong, itu akan mengharapkan 2 argumen, jadi akan ada kesalahan, dan kesalahan diabaikan. Dan tidak Sebenarnya tidak secara implisit mencetak hanya elemen paling atas.Lua , 89 byte
Cobalah online!Seperti yang ditunjukkan oleh penyorotan sintaksis, ini adalah penyalahgunaan komentar masif.
Bergantian:
Cobalah online!
Dan untuk kenyamanan, program untuk mengonversi program ke dalam setiap bentuk karakter lain: Cobalah online!
sumber
HHeelllloo WWoorrlldd!!
agak membosankan: PRetina , 39 byte
Cobalah online!
Mengambil setiap karakter lain memberi:
Cobalah online!
Program pertama membuat string dengan salam digandakan. Kemudian itu menggantikan setiap pasangan karakter dengan karakter pertama. Ada juga tahap kosong yang menggantikan semua string kosong dengan string kosong di antaranya, tetapi itu tidak melakukan apa-apa. Program kedua gagal mencocokkan huruf "x" sehingga tidak menggantikan apa pun setelah membuat ucapan.
Mungkin yang lebih menggembirakan, jika tahap ketiga diubah sedikit, set karakter pertama tidak harus menjadi pesan yang sama. Hal ini dapat menyebabkan banyak solusi panjang yang identik seperti penuh dan dibelah dua .
sumber
Arang , 25 byte
Cobalah online!
Jika Anda menghapus karakter genap, Anda cukup menghapus perintah panah yang menunjukkan arah teks berikutnya, dan yang meninggalkan kode berikut:
Cobalah online!
Itu juga mencetak salam.
sumber
Haskell , 85 byte
Cobalah online!
Setiap karakter kedua dihapus:
Cobalah online!
Ini mengeksploitasi dua format komentar di Haskell:
{- -}
untuk komentar in-line atau multi-line dan--
untuk mengomentari sisa baris.sumber
Javascript, 67 byte
Setiap huruf kedua dihapus:
Sama seperti jawaban Hasaik dari Laikoni, ini mengeksploitasi komentar.
sumber
// * /
menjadi//**/
(yang sayangnya tidak mungkin dalam kasus Anda karena/**/alert`Hello, World`
jumlah byte yang aneh, bahkan tidak seperti dalam kasus saya) .Brachylog , 4 byte
Cobalah online!
Penjelasan
~w
menulis variabel kanannya keSTDOUT
, dan mengabaikan argumen kirinya.Ḥ
adalah"Hello, World!"
, jadi ini mencetakHello, World!
.Jika kita hanya mengambil karakter pertama dan ketiga, kita dapatkan
Ḥw
. Dalam hal iniw
tulis variabel kiri dan abaikan variabel kanannya, sehingga ia juga mencetakHello, World!
.2 byte
Cobalah online!
Secara teknis ini adalah jawaban yang valid, tetapi ini menyatukan variabel output dari program alih-alih mencetak
STDOUT
, jadi saya kira program 4 byte lebih sesuai semangat tantangan.sumber
Haskell, 102 byte
Program lengkap:
dan setiap karakter lainnya dihapus:
sumber
p u t S t r
dan\"
.kode mesin x86, 162 byte
PROG.COM Unduh dan jalankan dalam emulator MS-DOS , misalnya DOSBox .
setelah penghapusan MINI.COM Unduh
Bagaimana cara menjalankannya?
Instal DOSBox, untuk Ubuntu / Debian
Menjalankannya
Dalam DOSBOX
Bagaimana cara kerjanya?
Kode pengoperasian mesin mewakili instruksi bahasa rakitan .
Dalam MS-DOS untuk mencetak karakter Anda akan mengatur register dan membuat interupsi. Daftar AH akan menjadi 0x02, register DL berisi karakter Anda. Vektor interupsi adalah 0x21.
File kecil model MS-DOS COM adalah pilihan yang bagus, karena tidak memiliki header . Ini dibatasi oleh 64K, tetapi dalam kasus kami itu tidak masalah.
Untuk menghentikan program gunakan interupsi 0x20
Sihir
Jika Anda ingin menjalankan perintah 0xAB opcode dengan satu parameter 0xCD , Anda menulis
Di PROG.COM
Di MINI.COM
Ini sama dengan kode mesin, jika Anda tidak menggunakan register BL .
Generator
Konversi file teks dengan hex ke hex binary
Tampilkan cuplikan kode
sumber
Pyth , 31 byte
Cobalah online!
Menjadi
Terima kasih kepada @CalculatorFeline karena menunjukkan kesalahan dan menghapus satu byte.
sumber
V , 32 byte
Perhatikan bahwa itu
<esc>
adalah karakter tunggal, mis0x1b
Cobalah online!
Menghapus setiap karakter lain memberi:
Cobalah online!
sumber
05AB1E , 29 byte
Cobalah online!
Penjelasan
Setelah menghapus setiap karakter lain kita dibiarkan dengan kode
Cobalah online!
Penjelasan
sumber
Mathematica, 62 byte
Ia kembali
"0H0e0l0l0o0,0 0W0o0r0l0d0!0" Null P0r0i0n0t0[0]
, dan mencetakHello, World!
sebagai efek samping. Ketika dijalankan sebagai program (bukan di REPL), nilai pengembalian tidak akan dicetak.Setelah menghapus setiap karakter lain:
Ia kembali
Null ol! rn[Hlo]
, dan mencetakHello, World!
.sumber
Jelly ,
2625 byteCobalah online!
Setelah menghapus setiap karakter kedua, kita pergi dengan kode berikut.
Cobalah online!
Bagaimana itu bekerja
sumber
Secara kubik v2.1 , 222 byte
Cobalah online!
Setiap surat lainnya:
Cobalah online!
sumber
CJam , 32 byte
Cobalah online!
Mengambil setiap karakter lain memberi:
Cobalah online!
sumber
Tolong, WarDoq! , 2 byte
Cobalah online!
H
cetakanHello, World!
,i
adalah no-op.Tolong, WarDoq! dapat menambahkan dua angka dan menguji bilangan prima, sehingga dianggap sebagai bahasa pemrograman yang valid per posting meta ini .
sumber
/// , 25 byte
Cobalah online!
Dengan setiap karakter lain dihapus:
sumber
PHP, 53 byte
Dengan setiap karakter lain dihapus:
sumber
Oktaf,
4945 byteDisimpan 4 byte sejak Oktaf tidak memerlukan tanda kurung untuk melakukan pengindeksan.
Cobalah online!
Dan yang berkurang:
Cobalah online!
Penjelasan:
Kode awal memiliki duplikat huruf-huruf dalam string, sehingga kita dibiarkan
Hello, World!
ketika setiap detik dihapus. Beberapa ruang ditambahkan untuk memastikan tanda kurung dan apostrof disimpan.Pengindeksan benar-benar
1:2:end
. Ada 27 karakter, dan kita tidak bisa menggunakanend
atau27
karena kita harus menghapus satu karakter, jadi kita gunakan3 ^ 3
saja. Ketika kami menghapus setiap karakter ketiga, pengindeksan menjadi(:)
(dan beberapa spasi tambahan).(:)
berarti "meratakan dan berubah menjadi vektor vertikal" . Jadi, kita perlu memindahkannya, menggunakan'
. Kita tidak perlu mengubah urutan string dalam kode asli, tetapi bekerja transposing ganda, jadi string pertama ditransposisikan dua kali menggunakan''
, dan yang kedua ditransposisikan sekali saja.sumber
APL (Dyalog) ,
3534 byte-1 terima kasih kepada Martin Ender.
Cobalah online!
'0H0e0l0l0o0,0 0W0o0r0l0d0!0'
pesan dengan nol sebagai karakter pengisi dilepas~
kecuali⍕
diformat (stringified)0
angka nolHanya menyisakan karakter aneh, ini menjadi
'Hello, World!'
.sumber
T-SQL, 75 byte
Penyalahgunaan komentar single dan multi-line, terinspirasi oleh versi LUA CalculatorFeline .
Setelah menghapus semua karakter genap, beberapa di antaranya adalah jeda baris:
sumber
Javascript, 73 byte
Buat string
a
dengan kontena0l0e0r0t0`0H0e0l0l0o0,0 0W0o0r0l0d0!0`0/0/
, lalu hapus semua0
untuk diberikanalert`Hello, World!`//
, yaitueval
'd.Mengambil setiap karakter lain dari program memberi
peringatan yang
Hello, World
menggunakan sintaks string template dengan cara yang sama seperti apa yang telah dievaluasi dalam program lengkap, kemudian menyimpan hasil panggilana
dan termasuk komentar yang berwawasan//;vlarpae//,')
.sumber
> <> , 47 byte
Asli:
Dengan setiap karakter kedua dihapus:
Cobalah secara online: asli , dimodifikasi
Program asli mendorong karakter "Hello, World!" ke tumpukan (dalam urutan terbalik) diselingi dengan spasi, lalu secara bergantian mencetak karakter dan menghapus satu sampai panjang tumpukan nol. Program kedua melakukan hal yang sama, kecuali instruksi penghapusan
~
tidak ada.Jika Anda tidak keberatan berhenti dengan kesalahan, kita dapat mengambil daun dari buku Kardinal Martin Ender : kode yang dimodifikasi adalah
dan aslinya sama tetapi dengan baris baru disisipkan di antara semua karakter, untuk 39 byte. Cobalah secara online: asli , dimodifikasi .
sumber
,,,, 34 byte
Untuk menghapus karakter bernomor genap ...
Penjelasan
Dengan semua karakter:
Tanpa karakter genap:
sumber
Brainfuck, 155 byte
Cobalah online!
Setiap karakter kedua dihapus:
sumber
Jelly , 32 byte
Cobalah online!
-2 byte terima kasih atas jawaban @ totallyhuman
Sekarang milikku adalah penipuan>. <
Pilih yang itu juga: D
sumber