Dalam bahasa pilihan Anda, tulislah sebuah program yang dengan tepat menampilkan karakter yang Hello world!
diikuti oleh baris baru. Kode:
- tidak boleh menggunakan karakter apa pun lebih dari dua kali (alfanumerik, simbol, spasi putih ... apa saja)
- tidak boleh menggunakan sumber daya eksternal apa pun
- seharusnya tidak menggunakan input pengguna apa pun
- seharusnya tidak menghasilkan apa pun
Contoh program python yang valid:
print("He%so world!"%(2*'l'))
Contoh program python yang tidak valid (karakter 'r' digunakan tiga kali):
print("Hel"+chr(108)+'o world!')
Pemenang adalah siapa pun yang memiliki suara terbanyak setelah 14 hari.
EDIT: Pemenang telah dipilih! Terima kasih atas kerja Anda pada pertanyaan ini!
Jawaban:
Ruby (1.9+)
Karena ini adalah kontes popularitas, mari kita coba untuk tidak menggunakan karakter apa pun dari 'Hello world!' sementara masih menggunakan karakter lain hanya maksimal dua kali:
Ini 40 karakter btw.
Pesta
Dan yang ini menggunakan sihir unicode.
Catatan:
Kode:
Bagi mereka yang tidak memiliki font yang tepat diinstal terlihat seperti ini:
Inilah hexdump:
Anda harus menjalankannya pada mesin di mana charset defaultnya utf-8. Saya mencoba OSX10.8 menggunakan iTerm2 dengan lingkungan berikut:
PHP 5.4
Ini menggunakan zLib: (sayangnya ia menggunakan karakter
e
dano
)Hexdump:
+1
Berikut adalah kode ruby 2.0 yang saya gunakan untuk menguji duplikat:
sumber
Hello world!
diikuti oleh baris baru"ascii//translit
akan mentransiterasi karakter unicode ke ascii dasar. Dan tentu saja gema akan menambahkan baris baru, jadi yang ini sesuai dengan spesifikasi (jika kita tidak mempertimbangkan kesamaan oktet)Hello World?
bukannyaHello World!
Anda harus menggunakan bahasa yang lebih ekspresif.
Cina,
6 43 karakterMenjalankan google translate pada produk ini
Hello world!
(terima kasih @sreservoir dan @Quincunx untuk pembaruan)
sumber
你好世!
喂世!
mengorbankan ... well, tidak ada lagi yang benar-benar dikeluarkan.HQ9 +, 1 char
menjaganya agar tetap sederhana :)
sumber
print Hello World
pertanyaan sebenarnya adalahwho can submit a HQ9+ answer faster
pertanyaan.C, 192 karakter
Karena ini bukan golf, saya memutuskan untuk bersenang-senang dan mencoba menggunakan setiap karakter tepat dua kali (sambil memasukkan sesedikit mungkin dalam komentar, karena itu membosankan). Saya menyadari bahwa saya tidak melakukannya dengan sangat baik, karena kode saya mengandung satu ton kode "mati" yang membosankan juga (tidak dalam arti literal, tetapi dalam arti karakter placeholder hanya digunakan untuk memenuhi persyaratan). Bagaimanapun, ini sangat sulit (tapi menyenangkan) dengan batasan dua karakter, jadi sayangnya saya tidak dapat menemukan sesuatu yang lebih menarik. Itu memang memberi saya ide untuk masalah baru ...
(Diperbarui per komentar @ ugoren.)
sumber
.
dengan menggunakannya untuk fraksi. Anda juga dapat mendeklarasikan array dan menggunakannya[]
..
; Saya hanya berpikir untuk menggunakannya untuk akses struct. <s> Adapun deklarasi array, saya kehabisan,
karenaprintf
panggilan, dan saya juga keluar dari;
s, jadi saya tidak yakin bagaimana saya bisa mendeklarasikannya. </s> Duh, saya bisa menggantiATION_
. ..Perintah Vim (18 penekanan tombol)
iHe
Esc3al
Escio Wor
Rightd!
EnterTidak mengulangi penekanan tombol apa pun lebih dari dua kali.
Ini agak melanggar aturan "input pengguna" karena masih pengguna yang perlu memasukkan urutan itu, tapi saya kira jika Anda menyimpannya sebagai makro atau nnoremap sebelumnya itu akan dihitung, karena Anda hanya menjalankannya tanpa secara eksplisit melakukan apapun masukan untuk mewujudkannya.
Ini juga perlu
nocompatible
diatur, yang dapat dihitung sebagai menggunakan sumber daya eksternal, jadi saya telah memberikan variasi lain di bawah ini:Perintah Vim (21 penekanan tombol)
iHe
Esc3al
Escio Wor
Ctrl+[$ad!
EnterVariasi ini tidak perlu
nocompatible
diatur, meskipun berhasil menggunakan Esctiga kali dengan menggunakan Ctrl+[tempatnya.sumber
Right
,Esc
danEnter
, mereka tidak secara harfiah karakter-karakter. Vim berurusan dengan penekanan tombol, yang saya anggap setara dengan karakter untuk keperluan kontes ini (dan aturan "jangan ulangi lebih dari dua kali"). Saya hanya menggunakani
penekanan tombol dua kali, dan<Right>
penekanan tombol sekali. AdapunE
, saya tidak pernah menggunakannya sama sekali - tetapi saya menggunakannya<Esc>
dua kali dan<Enter>
sekali.l
s.:set nocompatible
.Right
tidak terlalu vim-y.Piet - Tidak ada karakter sama sekali!
sumber
Perl, 29 karakter
Jawaban ini termasuk bakiak x-rated!
Perl, 23 karakter
Lebih pendek, tetapi tidak ada sepatu porno. :-( Ide dasarnya sama ...
Perl, 20 karakter
Membosankan...
sumber
Powershell, 20
sumber
Sclipting , 11 karakter
Saya melihat program HelloWorld yang indah ini di daftar program Hello World esolang .
sumber
Scala:
3429 karakterSaya bangga dengan diri saya untuk yang satu ini:
Mengalami kesulitan mengatasi duplikat 'l's,' r's, tanda kutip dan tanda kurung. Kemudian saya menemukan
printf
fungsi Java lama , yang dengan senang hati akan mengubah angka menjadi huruf ketika diberi%c
penentu format.Memperbarui
MrWificent melakukan hal yang luar biasa dengan menunjukkan bahwa sejumlah besar karakter dapat diselamatkan dengan menggunakan 'l' kedua saya secara manual dalam string!
sumber
printf
mengandungr
seperti halnyaworld
. Hal yang sama berlaku untuk hurufo
yang digunakan lebih dari satu kali. Ini didasarkan pada interpretasi saya terhadap pernyataan berikut dari OP "Contoh program python yang tidak valid (karakter 'r' digunakan tiga kali):print("Hel"+chr(108)+'o world!')
"chr
Python 3 [38 byte]
Saya tidak akan mempertimbangkan
import __hello__
sebagai sumber daya eksternal.sumber
Perl: 34 karakter
Contoh dijalankan:
(Bukan masalah besar. Diposting hanya untuk menggunakan setidaknya sekali dalam hidupku
s///
dengan pembatas mewah itu.)sumber
PHP, 33 karakter
Saya hanya suka betapa PHP memaafkan dan pengertian!
Sebelum dihapus (atau jika masih ada, saya benar-benar buta), saya melihat komentar yang mengatakan "Tidak ada brainf * ck?: D". Yah, sangat tidak mungkin untuk menulis solusi di BrainF * ck, seperti yang Anda tahu. Tapi saya berhasil membuat kode ini, hanya untuk lulz.
Jika Anda tidak memiliki juru bahasa BF, kode di atas hanya mencetak yang PHP: P
sumber
Hel
tidak dikelilingi oleh tanda kutip. Juga saya belum pernah dengarstr_rot13
sebelumnya..
) dengan meletakkanHel
sebelum<?=
.Hel<?=str_rot13("yb jbe")?>ld!
HTML Fiddle - 21 karakter
sumber
\n
jadi saya akan mengatakan<br>
jumlahr
tersebut diulang dalam solusinya. Apakah saya salah menafsirkan persyaratan?Ruby: 27 karakter
Contoh dijalankan:
Ruby: 25 karakter
(Berdasarkan komentar Vache.)
Ruby: 23 karakter
(Salinan jawaban Powershell dari Danko Durbić .)
sumber
puts 'He'+'l'*2+'o world!'
lebih pendek satu karakter!puts"He#{?l*2}o world!"
p
termasuk kutipan dalam output. Saya lebih memilih untuk tetap ketat dengan format output yang diperlukan. Tapi Anda benar, ruang tidak diperlukan. Terima kasih.JavaScript, 66 karakter
Terinspirasi oleh FireFly, setiap karakter yang digunakan oleh kode ini digunakan tepat dua kali.
sumber
C - 43 Karakter
Keluaran
Hitungan Karakter
sumber
main
dll?i
).JavaScript [37 byte]
Terlalu primitif bukan?
sumber
nginx.conf
Beraksi:
sumber
set
. Ini hanya memiliki 3 ruang sekarang, yang mana saja bisa menjadi tab!Emacs Command (15 penekanan tombol)
Jika jawaban vim itu sah maka ini juga pasti :)
Sambil bercanda, makro itu bisa menjadi terlalu :)
Lebih dari omong kosong, saya mungkin bisa memeras lagi, tapi ini tampaknya cukup baik untuk saat ini (karena ini mengalahkan vim).
PS, tolong abaikan semua omong kosong saya (saya (jarang, tetapi) menggunakan vim juga!).
sumber
Jalanan 98
Ini adalah versi di mana setiap karakter muncul dua kali.
Meninggalkan banyak sampah di tumpukan.
Sebagai bonus, setiap karakter memiliki sesuatu yang dilakukan dengan IP.
sumber
Malbolge
sumber
Hello, world.
bukan cetakHello world!\n
:( Cobalah online! Mengesankan, tetapi tidak valid.Sebenarnya saya tidak suka selingkuh: P
Python
sumber
TypeError
.print("!dlrow os%eH"[::-1]%('l'*2))
bekerja di kedua versi (Python2 dan Py3K).GolfScript
Mengganti dua baris baru (untungnya yang ketiga, diperlukan untuk penggantian, disediakan oleh bawaan
n
), menggunakan kedua jenis string literal untuk menghindari salinan rangkap empat dari tanda kutip. Karenal
satu-satunya karakter yang muncul lebih dari dua kali dalam string asli, itu tidak terlalu sulit.sumber
o
. Aturan mengatakan bahwa itu tidak boleh memiliki karakter lebih dari dua kali .Hmm.
Dalam C, mengingat aturan-aturan ini, kita hanya dapat memiliki satu
#define
(karenai
dann
) dan paling banyak dua fungsi memanggil definisi AT ((
dan)
).Saya kira hanya ada satu cara untuk melakukannya (walaupun saya mungkin salah):
sumber
puts()
bukanprintf()
.o
diworld
?PESTA
Cred @ manatwork
sumber
-e
dengan menggunakan khusus$'…'
sintaks:echo $'Hel\x6c\x6f world!'
.C - 46 Karakter
main(){printf("He%clo wor%cd!\x0d",'l',108);}
Mencetak:
sumber
main(){printf("He%clo world!%c",108,10);}
harusnya berhasil, dan menghemat beberapa karakter.Fuga
Dari esolang wiki:
Dan Anda dapat mendengarkan kode sumbernya .
sumber
PHP
32 karakter
Perhatikan bagaimana saya tidak menggunakan karakter lebih dari dua kali, karena l! = L
Perhatikan juga, meskipun Stack Overflow menghapusnya dalam representasi, ada jeda baris setelah
!
.sumber
XQuery, 19 karakter
sumber