Постройте полиглот для Hello World


15

Создайте текстовый файл с надписью «Hello World!» в максимально возможном количестве языков программирования при компиляции / интерпретации, и при этом максимально коротким.

Оценка за ваше представление рассчитывается следующим образом C / 2 ^ ((L - 1) / 4): где «C» - длина текстового файла в символах, а «L» - количество языков, на которых действует программа. Конечно, выигрывает самая низкая оценка.


1
Этот вопрос похож на этот другой , но в этом случае вы можете поделиться «Hello World» среди некоторых языков, если хотите.
Джо З.

Это должна быть целая программа или просто правильная команда?
ASCIIThenANSI

Ответы:


20
print("Hello World!")

Работает как минимум в Julia, Perl, PHP, Python2, Python3, Qbasic, R, Ruby ...


1
Это также работает в R и Джулии (и конечно во многих других языках).
Свен Хоэнштейн

2
@jdstankosky, этот точный код не работает в PHP. pastebin.com/9x6HactK
manatwork

1
Вид принудительного ограничения, но мы можем сказать, что он работает и в JavaScript, так как некоторые интерпретаторы командной строки предоставляют print()функцию для вывода. pastebin.com/6fXtgFER
manatwork

2
работает и в
Луа

1
@gnibbler, не работает в PHP без открывающих тегов.
Tyzoid

12

JavaScript ES6, Oration , Vitsy , Minkolang оценка = +71,94703045766462

121 / 2^(3/4), Интересный факт? Я не пытаюсь победить, просто добавляю как можно больше языков.

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

Что видит Витси

«Ну, я 1D язык, так что ... пока только первая строка имеет значение».

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

Спасибо за печенье, Витя: 3

Что видит JavaScript ES6

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

«Давайте посмотрим ... Вы поставили номер, 222а затем что-то в комментарии. Хорошо, конечно, я буду с этим».

shush=0

"Вы сделали переменную. Отметили."

alert("Hello, World!")

«Ах, я вижу, куда ты идешь с этим. Я покажу это».

sorry=`
listen
capture Hello, World!`

"Оо! Многострочная строка! Теперь мы говорим, ES6, рулез, ES5 слюни!"

(EOF)

"Ну, я сделал. Мир."

Что видит Oration

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

«Этого не было в моих записях ... Лучше всего ничего не делать».

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

«О, вот несколько дополнительных заметок».

listen

"Слушать..."

capture Hello, World!`

"...Привет, мир!"

(EOF)

« Больше ничего не думает ! Отлично, я здесь закончил. Дышит глубоко »

Минколанг объяснение

(Слишком ленив для создания повествования. Возможно, позже, код занял некоторое время.) Нерелевантный код заменен на #или опущен. Также добавлены комментарии C ... C.

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

Слой 1, часть 1

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

Слой 2, часть 1

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

Слой 1, часть 2

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

Слой 2, часть 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
Мой ребенок гордится твоим подчинением. Вот. Есть печенье. +1
Аддисон Крамп

8

Оценка 0,84

H

Работает в H9 + и HQ9 +.

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


1
Вы забыли: HQ9 ++, HI9 +, FISHQ9 +, CHIQRSX9 +.
user75200

@ user75200 Я предполагаю, что те не были столь популярны в 2013 году
Timtech

7
'Hello World!'

Работает на нескольких языках сценариев, включая PHP, GolfScript, APL, ...


Также AppleScript и Javascript :)
Томсминг

Javascript не будет включать цитаты?
Джо З.

Это работает и в PowerShell.
Изи

1
Работает во всех производных H9 +, кроме FISHQ9 + тоже
Tornado547


1

ES8, Japt, TeaScript, C #, C ++, C, ESMin, оценка: ~ 8,8

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

ES8, TeaScript и Japt см "Hello World!".


Это не будет работать в Привет из-за дополнительных символов.
user75200

Я почти уверен, что многие из них (HQ9, Hello и варианты) не учитываются, потому что они не являются «настоящими» языками программирования.
KSmarts

Да, они Это настоящие языки. Но они могут или не могут работать. И Hello ++ отбрасывает не-h символы. Hello ++++ удаляет все, что не является частью "Hello world!"
user75200

Согласно стандартам PPCG, это не так .
KSmarts

И нет HQ9.
user75200

1

Madbrain и [вставить большинство производных BF здесь], 272 227 байт

Просто публикуем для удовольствия, а не для победы 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[-]+[-->-[>>+>-----<<]<--<---]>-.>>>+.>>..+++.>>.>.<<<.+++.------.<<-.>>>>+.

ПРИМЕЧАНИЕ: TIO для Madbrain не существует, поэтому вам придется поверить мне в этом. Однако я написал (по общему признанию, не очень хорошо написанный (но эй, по крайней мере, это работает!)) Интерпретатор для Madbrain, который находится на esolangs wiki.

объяснение

Madbrain видит: (Я написал этот код 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

Я признаю, что Madbrain достигает кода BF, но ничего не делает, поэтому я не включил его здесь.

Брейнфак (и множество производных BF) видит:

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

BF игнорирует все, что не ><+-.,[]так, поэтому он игнорирует большую часть кода Madbrain. Тем не менее, +в коде Madbrain есть некоторые s (это то, что ++++++есть), поэтому вам нужно добавить [-]после того, что устанавливает текущую ячейку в 0.

Код после ++++++[-]является кодом для печати Hello World!.


0

TI-BASIC и Pyth, 13/2 ^ ((2-1) / 4) = 10,93

"Hello World!

Примечание: неконкурентный ответ, так как Pyth был создан после публикации этого вызова.


Также работает в ESMin, Japt, Teascript, O и т. Д.
Mama Fun Roll

Не стесняйтесь писать на любом языке, который вы хотите, это не имеет значения, когда это было сделано.
user75200
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.