Tujuan Anda adalah menulis "Halo, Dunia!" (minus tanda kutip). Ini adalah kontes popularitas , sehingga sebagian besar suara menang. Panjang kode akan digunakan untuk memutuskan hubungan.
Apa saja, asalkan sesuai dengan aturan berikut:
- Semua karakter harus berupa huruf atau angka, jadi Anda hanya dapat menggunakan karakter dalam string "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".
- Semua kode yang Anda gunakan harus dalam satu file, dengan pengecualian modul / kelas yang diimpor / apa pun namanya dalam bahasa favorit Anda.
- Hanya pustaka / kerangka kerja standar untuk bahasa pilihan Anda yang diizinkan (misalnya, modul Matematika Python diizinkan, tetapi Numpy, Scipy, dan Pygame tidak). Saya akan mengizinkan TkInter karena ini adalah standar de facto untuk GUI dengan Python.
- Tidak ada input yang diizinkan, baik itu membaca dari stdin, membaca file, mengirimkan gambar, atau membaca dari web.
+10 poin brownies jika Anda mengetahui cara melakukannya di Jawa tanpa menekuk aturan.
Sesuai keinginan Anda, siapkan, kode!
EDIT: kurung kurawal ({}), kurung kurawal ([]), dan kurung kurung (()) diizinkan karena ini akan sangat mustahil bagi sebagian besar bahasa tanpa mereka. Saya juga menghapus aturan batas karakter. Semoga ini akan membuatnya lebih menarik.
EDIT ^ 2: spasi putih juga diperbolehkan. Otak saya tidak berfungsi dengan baik, maaf. >. <
;
? Bagaimana saya bisa menulis sesuatu dalam bahasa C?72 101 108 108 111 44 32 87 111 114 108 100 33{a.
membutuhkan periode di akhir untuk bekerja, dan jalur yangu:
sama membutuhkan titik dua. Tanpa.
dan:
kita bukan apa-apa.Jawaban:
Perl
Ada yang bilang perl adalah bahasa yang penuh dengan noise ascii dan simbol acak seperti
$
... Itu tidak benar: Psumber
s/PATTERN/REPLACEMENT/FLAGS
, tetapi Anda benar-benar dapat menggunakan sebagian besar apa pun yang Anda inginkan daripada garis miring. Kode di sini menggunakan "z" bukannya garis miring dan berubah (tidak ada) menjadi "Helloq Worldm" kemudian menggantikan "q" untuk chr 44 (menggunakan flag \ e untuk mengevaluasi PENGGANTIAN alias "chr 44" sebagai ekspresi) yang merupakan ", ". Ini kemudian menggantikan "m" dengan chr 33, a "!", Dan mencetaknya.q//
. pembatas apa pun dapat digunakanq!! q** q\\ q;;
,. Beberapa pengecualian adalah bahwa untuk menutup(
Anda menggunakan)
,q() q[] q{} q<>
dan yang menggunakan alfanumerik sebagai pembatas, harus spasi dari operator untuk ambiguitas disallow, misalnyaq qq
,q 66
. Trik yang sama berlaku untuk operator seperti kutipan lainnya.C
sumber
switch(putchar(72)){}switch(putchar(101)){}
, dll.putchar(putchar(108))
(sunting - BBC basic dipindahkan ke jawaban yang terpisah seperti yang disarankan. Sebagian besar suara untuk ini jelas untuk jawaban LOGO.)
LOGO
Penerjemah di http://www.calormen.com/jslogo/#
Output (segitiga hijau adalah kursor kura-kura)
sumber
Applescript
Tidak ada tanda kurung
[]
, kawat gigi{}
atau tanda kurung()
sama sekali dalam yang ini:Output adalah:
sumber
set s to s as list
berubah"H"
menjadi{"H"}
(daftar). Dalam bahasa lain, seperti Jawa, biasanya lebih rumit untuk melakukannya.Pesta
Jenis pekerjaan ini, jika Anda menyipitkan mata:
sumber
banner Hello World
ataufiglet Hello World
,
dan!
. Kalau tidak, saya hanya akan menggunakan yang lamaecho
.base64
Memenuhi aturan asli.
sumber
"
Python
Jadi apa, kita anggap semua orang membaca secara horizontal? Bagi pengguna yang suka membaca secara vertikal:
sumber
sys.stdout.write
adalah cara standar untuk menghasilkan teks tanpa baris baru di sebagian besar versi di Python (perilaku ini sedikit berubah di 3.0). Kita tidak dapat melakukan itu di sini karena periode.Polyglot: HQ9 +, H9 +, HQ9 ++, CHIQRSX9 +, HQ9 + B dan HQ9 + 2D (1 byte)
Terima kasih @ctor untuk daftar bahasa.
sumber
OMGROFL
Saya penggemar berat bahasa-bahasa esoterik. Untungnya OMGROFL adalah alfanumerik:
The
iz
perintah menetapkan nilai ke variabel, dalam hal inilol
,lool
danloool
berfungsi sebagai variabel ...The
rofl
perintah gema keluar ASCII setara dengan nomor yang tersimpan dalam variabel.The
stfu
perintah berakhir program;)sumber
COBOL
Diperlukan beberapa perubahan untuk menjadi sumber yang benar-benar alfanumerik saja.
PROGRAM-ID dapat dihapus. Anda mendapatkan nama program yang dihasilkan (lihat pesan).
STORAGE KERJA bisa dijatuhkan. Lagi-lagi rintihan kompiler.
Karena kedua baris ini sebelumnya telah berhenti penuh / periode, yang tidak lagi relevan sekarang karena deskripsi sepenuhnya hilang, jumlah pesan kesalahan sama dengan sebelumnya, dan masih tidak mempengaruhi kode yang dihasilkan untuk program.
Dalam mengubah COMP-5 menjadi COMP, klausa VALUE tidak lagi diizinkan, karena COMP 9999 hanya empat digit desimal sedangkan COMP-5 adalah biner dua byte dengan semua nilai bit tersedia.
Nilai dalam MOVE adalah nilai desimal yang memberikan nilai biner yang memberikan pasangan karakter.
Meskipun bidang COMP memiliki empat digit, dan tidak membolehkan klausa VALUE dengan lebih dari empat digit, Anda dapat menggunakan lebih banyak digit dalam MOVE nilai literal tanpa pemotongan pada saat itu ... jangan tanya mengapa. Opsi kompiler DIAGTRUNC (yang telah saya matikan) akan menghasilkan diagnostik Peringatan untuk ini.
Opsi kompiler TRUNC (BIN) dapat digunakan untuk memperlakukan COMP sebagai COMP-5, tetapi MOVE adalah cara lain untuk melakukannya.
Karena COBOL, hasilnya harus dalam KASUS UPPER (bohong, tapi hanya untuk bersenang-senang).
OK, mengalah, sekarang menghasilkan:
Yang, sebagai jumlah ganjil karakter, memerlukan beberapa perubahan lebih lanjut, karena kita tidak bisa memiliki bidang biner ganjil-angka-byte dengan kompiler ini. Lihat baris 13 X itu! Biasanya akan ditulis sebagai X (13), tetapi bisa seperti yang saya tunjukkan ...
Dan ORTEXT diperlukan (atau bukan ATAU, bagaimanapun) sebagai nama karena ATAU adalah kata yang disediakan untuk kompiler (itu berarti ATAU, tentu saja).
Ini adalah nilai-nilai EBCDIC, bukan ASCII, karena ini berjalan pada kotak yang sadar-EBCDIC, dan Big Endian.
Oh, COBOL membutuhkan banyak penghentian / periode penuh. Saya meninggalkan mereka (mereka dilarang) sehingga mendapat banyak pesan kompilasi. Hanya mengatakan kepada kompiler untuk menghasilkan kode (tidak ada pesan yang berhubungan dengan kode objek).
Bahkan tanpa DIAGTRUNC, pesannya sekarang hingga 17 ...
sumber
-
diizinkanRuby (hanya menggunakan alnum dan spasi putih)
Keluaran:
Hello, World!
sumber
Javascript
Gunakan konsol peramban untuk menguji.
sumber
JavaScript
sumber
ferNANDo
sumber
Rebol
Satu-satunya solusi alfanumerik:
Di atas adalah pembaruan yang menggunakan saran Dr Rebmu yang sangat baik
add space 1
(yang menghasilkan!
) untuk mendapatkan semua karakter.Di bawah ini adalah versi aslinya:
Versi lebih pendek dengan tanda kurung:
Dan versi lebih pendek dengan kawat gigi:
Dan versi terpendek dengan kurung & kurung:
Rebol menggunakan kawat gigi
{}
untuk pengutipan multi-baris. Jadi benar-benar valid di bawah perubahan peraturan tetapi tidak sepenuhnya semangat (IMHO) seperti dua jawaban pertama saya di atas.NB. Mencetak
!
itu menyebalkan!Rebol memungkinkan dan menggunakan karakter tanda baca secara rutin untuk nama fungsi dan tipe data. Jadi opsi suka
to-char 33
atauto char! 33
tidak akan diizinkan di bawah aturan (meskipun tanda baca ini bukan operator par se).Untungnya saya menemukan cara yang kurang ajar dengan memutar objek sistem Rebol:
make object! [...]
menjadi string dan cherry memilihnya!
:)Pembaruan: Dan sekarang juga ceri mengambil koma dari teks lisensi di objek sistem.
sumber
!
tidak diizinkan-
atau!
jadi Anda sekarang dapat menghapus suara turunC
Hanya menggunakan karakter alfanumerik, spasi dan kurung {}, kurung [] dan tanda kurung ().
printf () menerima char * sebagai argumen, tetapi karena kita tidak dapat menggunakan tanda kutip ("), saya mengetikkan string sebagai array panjang. Nilai yang terlihat di sini adalah string ASCII, dalam little endian (0x48 = H, 0x65 = e, 0x6c = l, dan sebagainya). Saya mengetikkannya terlalu lama [] karena dengan begitu saya bisa melewatkan argumen 8-byte dan karenanya hanya menggunakan dua panggilan printf () alih-alih empat.
sumber
BBC BASIC
Emulator di bbcbasic.co.uk
Berpisah dari jawaban LOGO saya.
Cara mudah
Angka-angka di sebelah kanan hanya kode ASCII. Ini sama dengan mencetak. Jika saya diizinkan koma, saya bisa melakukannya dalam satu baris (
VDU 72,101,108,etc.
)Cara yang lebih kreatif
sumber
Mathematica
sumber
DC
DC hanyalah alat yang sempurna untuk pekerjaan itu.
DC-
P
perintah mengeluarkan satu nomor dari tumpukan dan menampilkan representasi komputer mentah ke STDIO. Melihat sebagai5735816763073854918203775149089 = 0x48656C6C6F2C20576F726C6421
, yang direpresentasikan sebagai0x21, 0x64, 0x6C... = 'H', 'e', 'l'...
dalam arsitektur little-endian, hasilnyaHello, World!
.sumber
16i48656C6C6F2C20576F726C6421P
JavaScript!
Dan mereka mengatakan bahwa itu tidak dapat dilakukan ... Tidak ada operator penugasan, tidak ada penggabung, tidak ada kutipan! Arghhhh!
Jangan takut ... Karena kekuatannya adalah
with
Anda ...sumber
Javascript
Pembaruan: Berhasil memotong banyak karakter dengan memperkenalkan fungsi Dunia juga.
Solusi Javascript lain yang menulis ke console.log:
Terinspirasi oleh entri ini .
Pertama, saya mendefinisikan fungsi bernama Hello and World. Ini akan digunakan nanti.
Kemudian saya mulai rantai withs bersarang saya. The
with (console)
danwith (String)
digunakan sehingga saya bisa nanti Invokeconsole.log
danString.fromCharCode
tanpa menggunakan dot.Rencananya sekarang adalah untuk membangun string
Hello, World!
dengan menyalahgunakan bersarang bersarang. Setiap kali saya memanggil concat (), string yang dihasilkan akan menjadi konteks pada blok-berikutnya. Saya mengambil jalan pintas untuk mendapatkan"Hello"
dengan cepat dengan mengaksesname
propertiHello
fungsi. Kemudian saya menggabungkan karakter koma dan spasi dengan menggunakanString.fromCharCode
.Trik berikutnya adalah mendapatkan
"World"
bagian dari string. Saya tidak bisa menggunakan metode yang sama dengan yang saya dapatkanHello
, karena saya tidak bisa memanggil World.name. Alih-alih, saya memasukkan logika itu ke dalam metode Dunia, dan memintanya.Akhirnya, saya menambahkan tanda seru terakhir dan mengirim hasilnya langsung ke fungsi log, yang tentu saja console.log.
sumber
Perl
Dalam Perl modern (5.10 atau lebih baru):
Dalam Perl yang lebih lama:
Kedua solusi di atas menggunakan
q
operator seperti kutip Perl dan memungkinkan pembatas selektif untuk mengutip string, misalnya.q{}
q[]
q()
q//
Solusi ini membutuhkan perubahan aturan yang memungkinkan kawat gigi, tanda kurung atau paren. Jadi sementara benar-benar valid saya pikir
mniip
jawaban Perl sangat lebih dalam semangat sejati aturan (+1).Namun mengambil daun keluar dari
mniip
jawaban solusi saya dapat ditulis seperti ini:dan meskipun lebih keras pada mata itu berhasil.
sumber
syntax error at -e line 1, near "say chr"
Perl
sumber
Python:
menyebabkan "Halo, dunia!" muncul di layar Anda. Tidak percaya padaku Cobalah sendiri! Juga, ini sebenarnya tidak menggunakan web, itu membuka browser, yang mungkin mencari situs web.
sumber
dc, (26 byte untuk pegolf)
Spasi dan
[]
kurung sekarang diizinkan:Keluaran:
sumber
Rebmu , 46 karakter
Solusi paralel @ dragetun di Rebol (Karena Rebmu adalah alat pengajaran Rebol / Merah yang merupakan "dialek" yang bertujuan untuk menarik perhatian ke bahasa-bahasa dengan menggoyang-goyang kode Golf. :-P)
Namun, untuk mendapatkan karakter yang hilang, saya melakukan sesuatu yang lebih jelas. Saya hanya menambahkan ruang, bukannya pergi dan melihat melalui sistem string. Anda bisa mendapatkan ruang 1 untuk mendapatkan karakter literal # "!" dan tambahkan spasi 12 untuk mendapatkan karakter literal # ",".
Jika kami menjalankan ini, kami dapat melihatnya "tidak dicabut":
Yang cukup masuk akal:
sumber
Ruang putih
Oke, kita bisa menggunakan spasi putih. Ini hanya menggunakan
Space
,Tab
,LineFeed
dan mengabaikan karakter lainnya.Dengan komentar:
S
,T
atauL
saranaSpace
,Tab
atauLineFeed
masing-masing.Dengan menyoroti: http://en.wikipedia.org/wiki/Whitespace_(programming_language)#Sample_code
sumber
T-SQL, 52
Ah, ini lebih baik! Konversi biner langsung, hanya 52 karakter.
Sebelumnya...
Ada solusi yang jauh lebih pintar dan golf untuk ini yang akan bekerja jika kita bisa menggunakan
=
dan+
(Mencari data bawaan bawaan dalam msdb dan menggunakannya untuk membangun string kueri yang dapat EXEC)Tetapi karena kita tidak bisa, Anda mendapatkan pendekatan naif ini:
sumber
Python:
Pfff, siapa yang butuh bagian numerik dari alfanumerik?
Ini tergantung pada lokal, sehingga jarak tempuh Anda mungkin bervariasi. Namun, jika Anda benar-benar ingin mereplikasi hasil ini, Anda bisa menggunakan yang berikut sebagai ganti pernyataan impor:
(ini bukan bagian dari kiriman saya, ini hanya berbagi tentang penduduk setempat untuk dapat dipulihkan)
sumber
J - 73 char
Lagipula itu bisa dilakukan!
Inilah hal tentang J. Sebagian besar primitif adalah tanda baca ASCII, diikuti hingga dua titik atau titik dua. Primitif yang tidak terbuat dari tanda baca adalah karakter alfanumerik yang diikuti hingga dua titik atau titik dua. Jadi kami tidak diizinkan, kecuali untuk
{ } [ ]
.[
dan]
kata kerja identitas dan karenanya tidak berguna.Untungnya,
{
array indeks, jadi jika kita memiliki, katakanlah, sebuah string dengan setiap karakter ASCII tunggal (a.
, disebut Alphabet ), kita dapat menarik huruf-huruf itu dengan titik-titik kode ASCII mereka. Kami juga memiliki cadangan cara membuat string ,0 : 0
dan kemudian barang dan kemudian sendirian)
; titik dua yang memiliki alias di pustaka standardef
,.Lalu ada kata kerja di perpustakaan standar
show
,, yang memberi Anda representasi internal dari kata kerja jika Anda memberikannya nama sebagai string. Ada kata kerja laindo
,, yang akan menghasilkan string. Jadi jika kita dapat menarik keluara.
dari representasi seperti itu, kita dapat mengevaluasi itu dan menariknyaHello, World!
.Penyelamat kami datang dalam bentuk
take
, alias untuk{.
yang memilikia
namanya.show'take'
akan kembalitake=: {.
, jadi kami memilikia.
solusi kami dan karenanya.Kita dapat menghilangkannya
{
dengan menggunakan yang pada dasarnya setarapick
dari pustaka standar, tetapi paren pada akhirnya tidak dapat dihindari.sumber