Bangun polyglot untuk Hello World


15

Menghasilkan file teks yang mencetak "Hello World!" dalam bahasa pemrograman sebanyak mungkin ketika dikompilasi / ditafsirkan, sementara juga sesingkat mungkin.

Skor untuk kiriman Anda dihitung sebagai C / 2 ^ ((L - 1) / 4), di mana "C" adalah panjang file teks dalam karakter dan "L" adalah jumlah bahasa di mana program ini berlaku. Skor terendah menang, tentu saja.


1
Pertanyaan ini mirip dengan yang lain ini , tetapi dalam kasus ini, Anda dapat membagikan "Hello World" di antara beberapa bahasa jika Anda mau.
Joe Z.

Apakah harus keseluruhan program atau hanya perintah yang valid?
ASCIIThenANSI

Jawaban:


20
print("Hello World!")

Paling tidak berfungsi di Julia, Perl, PHP, Python2, Python3, Qbasic, R, Ruby ...


1
Ini juga berfungsi dalam R dan Julia (dan tentunya dalam banyak bahasa lain).
Sven Hohenstein

2
@ jdstankosky, kode persis itu tidak berfungsi di PHP. pastebin.com/9x6HactK
manatwork

1
Jenis memaksa batas, tetapi kita dapat mengatakan itu berfungsi dalam JavaScript juga, karena beberapa penerjemah baris perintah menyediakan print()fungsi untuk keluaran. pastebin.com/6fXtgFER
manatwork

2
bekerja di lua juga
mniip

1
@gnibbler, tidak berfungsi dalam PHP tanpa tag pembuka.
Tyzoid

12

JavaScript ES6, Orasi , Vitsy , Minkolang skor = 71,94703045766462

121 / 2^(3/4). Fakta menyenangkan? Saya tidak mencoba untuk menang, hanya untuk menambahkan bahasa sebanyak mungkin.

222 //X>"!dlroW olleH"Z 
shush=0
alert("Hello World!")
sorry=`
listen
capture Hello World!`
$$$
=` >###      .O$r"!"rXr<`

Apa yang dilihat Vitsy

"Yah, aku bahasa 1D, jadi ... untuk saat ini, hanya baris pertama yang diperhitungkan."

222 //X>"!dlroW ,olleH"Z
222                      push three twos
    //                   divide twice
      X>                 drop the result and carry on
        "!dlroW ,olleH"Z standard Hello, World! program

Terima kasih untuk kuki, Vitsy: 3

Apa yang dilihat JavaScript ES6

222 //X>"!dlroW ,olleH"Z

"Mari kita lihat ... Kamu memasukkan nomornya 222dan memasukkan sesuatu ke dalam komentar. Baiklah, tentu, aku akan melakukannya."

shush=0

"Kamu membuat variabel. Tercatat."

alert("Hello, World!")

"Ah, aku mengerti kemana kamu akan pergi dengan ini. Aku akan menunjukkannya."

sorry=`
listen
capture Hello, World!`

"Oo! Senar multiline! Sekarang kita bicara, ES6 rulez, ES5 ngiler!"

(EOF)

"Yah, aku sudah selesai. Damai keluar."

Apa yang Oration lihat

222 //X>"!dlroW ,olleH"Z

"Ini bukan pada catatanku ...! Sebaiknya tidak melakukan apa-apa."

shush=0
alert("Hello, World!")
sorry=`

"Oh, ini beberapa catatan tambahan."

listen

"Mendengarkan..."

capture Hello, World!`

"...Halo Dunia!"

(EOF)

" Tidak berpikir apa-apa lagi! Hebat, aku sudah selesai di sini. bernafas dalam-dalam "

Penjelasan minkolang

(Terlalu malas untuk membuat narasi. Mungkin nanti, kode butuh waktu.) Kode yang tidak relevan diganti dengan #atau dihilangkan. Juga, menambahkan komentar C ... C.

222 ###>"!dlroW olleH"# 
$$$  C this separates layers C
###>### #####.O$r"!"rXr<`

Layer 1, pt 1

222 ###>"!dlroW olleH"# 
222                      C push three 2s C
   _                     C space; fall to the next layer C

Layer 2, pt 1

###>### #####.O$r"!"rXr<`
   >                       C go this way C
       _                   C fall to the next (first) layer C

Layer 1, pt 2

222 ###>"!dlroW olleH"# 
       >"!dlroW olleH"   C go right and push those characters in that order C
                       _ C fall to the next layer C

Layer 2, pt 2

###>### #####.O$r"!"rXr<`
                       <  C starts here, going left C
                      r   C reverse stack C
                     X    C pop n (n = 2), and pop top n items on stack (2, 2) C
                    r     C reverse stack C
                 "!"      C push exclamation mark (for some reason, it's chopped off C
                r         C reverse stack C
              $O          C output stack as characters C
             .            C terminate program C

4
Anak saya bangga dengan kiriman Anda. Sini. Dapatkan kue. +1
Addison Crump

8

Skor 0,84

H

Bekerja di H9 + dan HQ9 +.

1/2 ^ ((2 - 1) / 4) = 0,84


1
Anda lupa: HQ9 ++, HI9 +, FISHQ9 +, CHIQRSX9 +.
user75200

@ user75200 Saya rasa itu tidak sepopuler tahun 2013
Timtech

7
'Hello World!'

Berjalan dalam beberapa bahasa skrip, termasuk PHP, GolfScript, APL, ...


Juga AppleScript dan Javascript :)
tomsmeding

Bukankah Javascript akan menyertakan tanda kutip?
Joe Z.

Ini berfungsi di PowerShell juga.
Iszi

1
Bekerja di semua turunan dari H9 + kecuali untuk FISHQ9 + juga
Tornado547

1

CoffeeScript dan CJam, 46/2 ^ ((2-1) / 4) = 38,68

e###
"Hello, World!"
e###alert "Hello, World!"

1

ES8, Japt, TeaScript, C #, C ++, C, ESMin, skor: ~ 8.8

main=_=>"Hello World!"();

ES8, TeaScript dan Japt lihat "Hello World!".


Ini tidak akan berfungsi di Hello karena karakter tambahan.
user75200

Saya cukup yakin banyak dari ini (HQ9, Halo, dan varian) tidak dihitung karena mereka bukan bahasa pemrograman "nyata".
KSmarts

Ya mereka Itu bahasa nyata. Tapi mereka mungkin berhasil atau tidak. Dan Hello ++ membuang karakter non-h. Hello ++++ membuang semua bukan bagian dari "Halo dunia!"
user75200

Menurut standar PPCG, mereka tidak .
KSmarts

Dan tidak ada HQ9.
user75200

1

Madbrain dan [masukkan sebagian besar turunan BF di sini], 272 227 byte

Hanya memposting untuk bersenang-senang, bukan untuk menang c:

956658555658
852224222254
************
c4993c839941
1****1**+**+
01cc70776ccc
g+11+g++*11
 c003 c3c00
 1gg* 1*1gg
 0  c 0c0
 g  1 g1g
    0  0
    g  g[-]+[-->-[>>+>-----<<]<--<---]>-.>>>+.>>..+++.>>.>.<<<.+++.------.<<-.>>>>+.

CATATAN: Tidak ada TIO untuk Madbrain, jadi Anda harus mempercayai saya tentang hal ini. Namun, saya menulis penerjemah (diakui tidak benar-benar ditulis dengan baik (tapi hei, setidaknya itu berhasil!)) Untuk Madbrain, yang ada di wiki esolangs.

Penjelasan

Madbrain melihat: (saya menulis kode ini c :)

956658555658
852224222254
************
c4993c839941
1****1**+**+
01cc70776ccc
g+11+g++*11
 c003 c3c00
 1gg* 1*1gg
 0  c 0c0
 g  1 g1g
    0  0
    g  g

Saya akui, Madbrain mencapai kode BF, tetapi tidak melakukan apa-apa, jadi saya tidak memasukkannya di sini.

Brainfuck (dan banyak turunan BF) melihat:

++++++[-]+[-->-[>>+>-----<<]<--<---]>-.>>>+.>>..+++.>>.>.<<<.+++.------.<<-.>>>>+.

BF mengabaikan semua yang tidak ><+-.,[], sehingga mengabaikan sebagian besar kode Madbrain. Namun, ada beberapa +s dalam kode Madbrain (itulah itu ++++++), jadi Anda perlu menambahkan [-]setelah itu yang menetapkan sel saat ini ke 0.

Kode setelahnya ++++++[-]adalah kode untuk dicetak Hello World!.


0

TI-BASIC dan Pyth, 13/2 ^ ((2-1) / 4) = 10.93

"Hello World!

Catatan: Jawaban yang tidak bersaing, karena Pyth dibuat setelah tantangan ini diposting


Juga berfungsi di ESMin, Japt, Teascript, O, dll.
Mama Fun Roll

Jangan ragu untuk menulis dalam bahasa apa pun yang Anda inginkan, itu tidak penting ketika dibuat.
user75200
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.