Эволюция «Привет, мир!»


226

Этот конкурс официально завершен, победителем стал jimmy23013 . Поздравляем!

Задача состоит в том, чтобы создать программу, которая печатает Hello World!на стандартный вывод. Суть в том, что ваша программа должна иметь расстояние Левенштейна 7 или меньше от программы в ответе, представленном перед вами.

Как это будет работать

Ниже я уже представил первый ответ , используя Python: print("Hello World!").

Следующий отвечающий должен изменить строку print("Hello World!")с помощью до 7 вставок, удалений или подстановок из одного символа, чтобы при ее запуске на любом языке, который до сих пор не использовался (в данном случае только на Python), вывод остается прежним Hello World!.

Например, второй отвечающий может использовать 1 substitution ( r -> u), 2 delete ( in) и 1 insert ( s) для создания строки, puts("Hello World!")которая печатается Hello World!при запуске в Ruby.

Третий отвечающий должен сделать то же самое на новом языке, но в puts("Hello World!")качестве отправной точки использует программу ответа второго лица (например ). Четвертый ответ будет относительно третьего ответа и так далее.

Это будет продолжаться до тех пор, пока все не застрянут, потому что нет нового языка, на котором можно запустить программу последнего ответа, изменив только 7 символов. Общая цель состоит в том, чтобы увидеть, как долго мы можем продолжать в том же духе, поэтому старайтесь не делать каких-либо неясных или необоснованных правок персонажей (однако это не является обязательным требованием).

форматирование

Пожалуйста, отформатируйте ваш пост так:

#Answer N - [language]

    [code]

[notes, explanation, observations, whatever]

Где N - номер ответа (увеличивается постепенно, N = 1, 2, 3, ...).

Вам не нужно указывать, какие именно символы были изменены. Просто убедитесь, что расстояние Левенштейна составляет от 0 до 7.

правила

Главное, что нужно понять в этой задаче, - это то, что только один человек может ответить одновременно, и каждый ответ зависит от предыдущего .

Никогда не должно быть двух ответов с одним и тем же N. Если два человека одновременно отвечают за некоторое N, тот, кто ответил позже (даже если разница составляет несколько секунд), должен любезно удалить свой ответ.

Более того...

  • Пользователь может отправить только один ответ за 8-часовой период. т.е. каждый из ваших ответов должен быть не менее 8 часов друг от друга. (Это сделано для того, чтобы пользователи не могли постоянно следить за вопросом и отвечать на него как можно больше.)
  • Пользователь не может отправить два ответа подряд. (например, так как я отправил ответ 1, я не могу сделать ответ 2, но я мог сделать 3.)
  • Каждый ответ должен быть на другом языке программирования.
    • Различные версии одного и того же языка считаются одним и тем же языком.
    • Языки считаются различными, если они традиционно называются двумя разными именами. (Здесь могут быть некоторые неясности, но не позволяйте этому разрушить соревнование.)
  • Вы можете использовать только вкладки, переводы строк и печатную версию ASCII . (Новые строки считаются одним символом.)
  • Вывод должен быть только без Hello World!каких-либо других символов (начальный / конечный перевод строки не является проблемой).
  • Если ваш язык не имеет стандартного вывода, используйте то, что обычно используется для быстрого вывода текста (например, console.logили alertв JavaScript).

Пожалуйста, убедитесь, что ваш ответ правильный. Мы не хотим понимать, что в цепочке есть пять ответов. Неправильные ответы должны быть быстро исправлены или удалены, прежде чем появятся дополнительные ответы.

Не редактируйте ответы без крайней необходимости.

счет

Как только все успокоится, побеждает пользователь, предоставивший наиболее (действительные) ответы. Связи переходят к пользователю с наибольшим количеством положительных голосов.

Лидерборд: (устарело)

(пользователь должен иметь как минимум 2 правильных ответа)

11 ответы

7 ответы

6 ответы

5 ответов

4 ответы

3 ответы

2 ответы

Используемые языки:

  1. питон
  2. CJam
  3. PHP
  4. Pyth
  5. Perl
  6. Befunge 98
  7. удар
  8. Нимрод
  9. Рубин
  10. GNU dc
  11. Golfscript
  12. Mathematica
  13. р
  14. Lua
  15. шалфей
  16. Юля
  17. Scilab
  18. JavaScript
  19. VHDL
  20. HyperTalk
  21. Haskell
  22. LOLCODE
  23. APL
  24. M30W
  25. Stata
  26. TI-BASIC (NSpire)
  27. ActionScript 2
  28. J
  29. PowerShell
  30. К
  31. Visual FoxPro
  32. VBA
  33. Расширенный BF Тип III
  34. Zsh
  35. Тире
  36. Clojure
  37. NetLogo
  38. Groovy
  39. CoffeeScript
  40. клипер
  41. Бейсик
  42. ЛОЖНЫЙ
  43. рыба (ракушка)
  44. GNU Octave
  45. TCL
  46. Е
  47. newLisp
  48. шепелявость
  49. SMT-LIBv2
  50. рэкет
  51. Батш
  52. Tcsh
  53. AppleScript
  54. мышь
  55. фея
  56. F #
  57. сокол
  58. бурлеск
  59. HTML
  60. SGML
  61. M4
  62. MUMPS
  63. TeX
  64. вперед
  65. Лосось
  66. Тьюринг
  67. до н.э
  68. Betterave
  69. Схема
  70. Emacs Lisp
  71. логотип
  72. AutoLISP
  73. ///
  74. Rebol
  75. кленовый
  76. FreeBASIC
  77. Vimscript
  78. КШ
  79. мотыга
  80. Mirc
  81. партия
  82. Сделать
  83. уценка
  84. ш
  85. GDB
  86. CSH
  87. HQ9 + -
  88. постскриптум
  89. Matlab
  90. унция
  91. CASIO BASIC
  92. VBScript
  93. QBasic
  94. обработка
  95. С
  96. Ржавчина 0,13
  97. дротик
  98. Kaffeine
  99. водорослевидный
  100. AMPL
  101. Alore
  102. Forobj
  103. T-SQL
  104. LiveCode
  105. Эйфория
  106. бар, где незаконно торгуют спиртными напитками
  107. Обсуждение MediaWiki
  108. SmallBASIC
  109. REXX
  110. SQLite
  111. ТЭС
  112. геый ++
  113. SQL (postgres)
  114. itflabtijtslwi
  115. RegXy
  116. Opal.rb
  117. белочка
  118. пешка
  119. Scala
  120. Rebmu
  121. Бу
  122. PARI / GP
  123. красный
  124. стриж
  125. BeanShell
  126. Вала
  127. щука
  128. Suneido
  129. AWK
  130. Неко
  131. AngelScript
  132. Gosu
  133. В
  134. ALAGUF
  135. BogusForth
  136. Пылающий Гром
  137. Cache ObjectScript
  138. сова
  139. кардинальный
  140. синтаксический анализатор
  141. усмешка
  142. котенок
  143. TwoDucks
  144. асимптота
  145. КОШКА
  146. IDL
  147. крошечный
  148. WTFZOMFG
  149. Io
  150. MuPAD
  151. Ява
  152. Оникс
  153. JBoss
  154. S +
  155. Hexish
  156. йаш
  157. невероятный
  158. будить
  159. отродье
  160. встроенная оболочка busybox
  161. gammaplex
  162. KTurtle
  163. АГОЛ 68
  164. Алиса
  165. SML / NJ
  166. OCaml
  167. CDuce
  168. недогрузка
  169. Симплекс v.0.6
  170. Минколанг 0,9
  171. Fexl 7.0.3
  172. Jolf
  173. Vitsy
  174. Y
  175. Сетчатка
  176. Кодовое название дракон
  177. Шутки в сторону
  178. Reng v.3.3
  179. Нечеткое окто гуакамоле

(Не стесняйтесь редактировать эти списки, если они неверны или устарели.)

Этот вопрос лучше всего работает, когда вы сортируете по возрасту .

ПРИМЕЧАНИЕ. Это пробный вопрос для нового типа задачи, который я имею в виду, где каждый ответ зависит от последнего и увеличивает сложность. Приходите обсудить это с нами в чате на этот вопрос или в мета .


61
«Сортировать по возрасту» полезно здесь.
xnor


5
@Mew HQ9 + печатает неверное сообщение. Но этот ... esolangs.org/wiki/Huby
Sp3000

17
Может быть, это может быть интересно: migl.io/projects/hw . Этот список автоматически отвечает и отображает их время жизни .
Майкл М.

6
@gerrit Потому что я действительно мог бы использовать еще 350 уведомлений об ответах ...
Увлечения Кэлвина

Ответы:


29

Ответ 85 - GDB (GNU Debugger)

#[]([.]c;main()&alert"  "
    echo Hello World!
#[;]:;#bye;dnl</vsh>

Я думаю, что это также можно квалифицировать как язык программирования. У него есть даже ifи whileкоманды .

echo еще одна встроенная команда в GDB.

Чтобы запустить этот код:

gdb --batch -x file

Расстояние: 7 от ответа 84 .


Пожалуйста, измените ваш ответ, 85 был неправильным ответом (я не заметил, что язык использовался ранее), и я удалил его.
Nit

Любая ссылка на GDB?
Оптимизатор

1
@Optimizer gnu.org/software/gdb ГНУ Debugger.
jimmy23013

Это похоже на запуск Java-проекта в Eclipse, а не в Netbeans
Оптимизатор

3
Этот ответ в порядке. GDB имеет командный язык, который используется для выполнения определенных команд отладки. Это делается путем запуска GDB в пакетном режиме и указания командного файла с помощью --batch -x <file>. Это законный язык. Смотрите здесь: sourceware.org/gdb/onlinedocs/gdb/Mode-Options.html ( -batch flag)

50

Ответ 1 - Питон

print("Hello World!")

Должны быть десятки языков, в которые это может превратиться.


113
Почему за это проголосовали, а не вопрос? Я гарантирую вам, что вопрос было сложнее написать;)
Увлечения Calvin's

91
Почему за ваш комментарий проголосовали больше, чем за ваш ответ?
Томсминг

23
@ Calvin'sHobbies Отвечать на положительные отзывы стоит больше, не стоит жаловаться :-)
Angew

30
@tom Почему за ваш комментарий проголосовали больше, чем за этот ответ?
Никаэль

24
^ Все они сожалеют о том, что ни один представитель не награжден за комментарий upvotes!
Оптимизатор

46

Ответ 59 - HTML

Какая? Нет HTML ??

<echo o[.]c;cat<<;#&&alert" ">Hello World!</vsh

Расстояние от ответа 58 : 6

Волшебство Вуду? Неа. Вот как это работает:

У вас может быть любой произвольный тег в HTML, поэтому первая часть <echo o[.]c;cat<<;#&&alert" ">- это echoтег, который теперь становится пустым тегом без использования CSS по умолчанию браузером.

На o[.]c;cat<<;#&&alert" "самом деле часть - это два свойства, установленные для этого тега, разделенные пробелом. Таким образом, первое свойство имеет ключ, o[.]c;cat<<;#&&alert"а второй ключ "и оба значения являются пустыми.

Вторая часть - это просто текст, Hello World!который является текстовым содержимым echoтега.

Затем HTML пытается найти закрывающий echoтег, но вместо этого находит закрывающий vshтег. Затем он игнорирует закрывающий vshтег (т.е. </vsh) и автоматически закрывает echoтег.


2
@MAKZ HTML довольно бесплатный и свободный. Вы можете иметь непревзойденные открывающие закрывающие теги, а какие нет. XHTML довольно строг. w3schools - хорошая отправная точка.
Оптимизатор

3
Вы можете иметь любой тег в HTML, поэтому echo - это обычный тег. o[.]c;cat<<;#&&alert"является свойством этого тега, а последнее "является другим свойством этого тега. Вы можете увидеть это, используя инструмент разработчика Inspector.
Оптимизатор

3
Довольно чертовски умный. Никогда бы не подумал об этом.
RubberDuck

15
Я думаю, что это то, что происходит, когда вы читаете стандартные документы в 3 часа утра на пейоте.
Дэвид Конрад

5
@Optimizer Обязательное чтение для людей, рекомендующих w3schools. ;)
Мартин Эндер

39

Ответ 95 - С

//[]([.]c;
main()    {
    puts("Hello World!");}
//#[;]#bye;dnl</>

Расстояние 7 от ответа 94


39
Кровавый наконец.
Нить

@Optimizer Я не получил никаких ошибок во время выполнения, используя gcc 4.7.2 на моем компьютере.
archaephyrryx

1
@Emil Just vim авто-отступ; ОП звонит по поводу того, что с этим делать (если он заходит слишком далеко, чтобы исправить, вы можете просто притвориться, что это вкладка и сделать дистанцию ​​7)
archaephyrryx

1
@ user23013 Поскольку программа не указывает intв качестве типа возврата для mainи фактически не возвращает код завершения ; следовательно, код возврата является технически неопределенным поведением, следовательно, 13.
Qix

1
Некоторые из предыдущих ответов (начиная с 85 GDB) проделали дополнительную работу по подготовке к C.
Kernigh

29

Ответ 22 - ЛОЛКОД

VISIBLE "Hello World!"

Расстояние: 6


Похоже на расстояние 6 до меня - удалить p, ut-> VI, tr-> IB, n->E
isaacg

1
Благодарю. Я думаю, что я скопировал другой код при расчете расстояния.
Закуска





21

Ответ 83 - Уценка

Какая ?? Нет уценки? :П

[](#[.]c;cat;#&&alert"  "
    @echo)Hello World!
[;]:;#bye;dnl</vsh>

Попробуй здесь

Расстояние от ответа 82 : 7

e   -> [
:   -> ]
\n  -> (
o H -> o)H
:   -> [
#   -> ]
"   -> :

Магия вуду ?? Неа!! Вот как это работает:

  • [text](link) создает ссылку.

Итак, первая часть кода

[](#[.]c;cat;#&&alert"  "
        @echo)

Который создает пустую текстовую ссылку с местоположением

#[.]c;cat;#&&alert"  "
     @echo
  • Следующая часть Hello World!печатается как есть

  • Затем [;]:;#bye;dnl</vsh>создает ссылку для ссылки, ;которую можно использовать в любом месте уценки.

Пример:

[Some text][;] // Outputs a link with text "Some text" and url ";#bye;dnl</vsh>"

1
Становится сомнительным, является ли это языком программирования . (То же самое для HTML на самом деле.)
Мартин Эндер

1
Ну, если HTML это язык, Markdown тоже. Это то же самое отношение между JS и Closure. Кроме того, учитывая этот вызов (1 язык за ответ), эти правила должны быть немного ослаблены.
Оптимизатор

1
Как я уже сказал, я не думаю, что HTML также является языком программирования по нашим стандартам. Но для решения этой конкретной задачи, вероятно, хорошо ослабить эти правила (но в идеале Хобби Кельвина должно заявить об этом).
Мартин Эндер

4
Можем ли мы провести эту дискуссию где-нибудь еще, а не на моем ответе? :)
Оптимизатор

2
Все еще довольно внушительно
Fabinout


18

Ответ 12 - Mathematica

#[puts];
"Hello World!"

Дистанция 7. Попытка убрать часть этого беспорядка.



15

Ответ 19 - VHDL

report "Hello World!";

Расстояние: 6


1
вау :) ........ упрямый да?
MAKZ

3
Ха-ха, я ждал вопроса о коде в гольф, который позволит мне использовать HDL: p

15

Ответ 6 - Befunge 98

<@,kb"Hello World!"

Расстояние 5 от предыдущего ответа . Первоначально была ошибка, где kне было; Я знаю, что это было там, когда я написал эту программу, хотя. Я думаю, это просто не попало в этот пост.


Я должен был надуть это, ну да ладно.
Джастин

Я просто собираюсь опубликовать ответ 7 на основе завышенной версии ...
jimmy23013

6
@Quincunx Я не могу себе представить, чтобы мы когда-либо могли подняться до System.out.println...
Sp3000

4
@ Sp3000 Сначала мы можем написать программу на Java в комментарии. Затем включите все остальное в комментарий.
jimmy23013

4
Я подумал о разрешении нескольких ответов на один ответ, чтобы он мог разветвляться как дерево. Тогда вы, ребята, можете продолжить свой маленький касательный Java. Это было бы слишком запутанным, хотя ...
Увлечения Кэлвина

14

Ответ 23 - APL

 "Hello World!"

Обратите внимание, что есть ведущий пробел.
Расстояние: 7


2
Wдолжны быть капитализированы для печати «Hello World!».

13

Ответ 3 - PHP

<?="Hello World!"?>

Этот ответ на расстоянии 5 от второго ответа .


Обратите внимание, что "Hello World!"дословная строка , которая, очевидно, находится на расстоянии 0 от ответа 2, является допустимой программой PHP, выводящей требуемую строку, и явное выражение print не требуется.
Хиджарян

@hijarian: Это верно только для оболочки PHP, что делает ее недопустимой для этой задачи.
Деннис

1
@Dennis Если вы напишите скрипт helloworld.phpи поместите Hello World!туда 12 символов, а затем запустите этот скрипт php helloworld.php, вы получите Hello World!вывод на стандартный вывод, поскольку PHP обрабатывает все, что находится за пределами <?php ?>инструкции обработки, как необработанный текст для вывода.
Хиджарян

Я понял, что вам нужно удалить кавычки (что делает расстояние Левенштейна 2), чтобы полностью соответствовать.
Хиджарян

4
@Petah Так? Это не код гольф. Мы не должны делать его настолько коротким или настолько простым, насколько это возможно.
PurkkaKoodari

13

Ответ 28 - J

]trace=:('Hello World!')

Расстояние = 5 от ответа 27


1
]+ =+ :+ '+ '= 5, верно?

3
Конечно. Пропустил это быстро ... Этот тип вопроса, безусловно, добавляет ощущение реального времени к вызовам кода: P.
jpjacobs

одна из самых странных нотаций для языка с таким простым именем ...
CoDEmanX

И J мог бы быть ответом 2, удалив отпечаток и заменив двойные одинарные кавычки, заканчивающиеся на ('Hello World!').
bcsb1001

13

Ответ 33 - расширенный BF Type III

a#="*#[.>]trac": "@Hello World!

Расстояние 7 от ответа 32

Ну, я не нашел интерпретатора для этого расширения, но код, кажется, соответствует спецификациям языка.

a //ignored
#="*# //comment
[.>] //print each character until an empty cell
trac" //ignored
: //move pointer, do not impact result
 " //ignored
@ //end of source
Hello World! //Injected in cells before execution

1
Точно так же, как вы знаете, приведенный выше ответ недействителен, поскольку он имеет расстояние 8. Это должно быть исправлено удалением некоторых пробелов, поэтому вы можете исправить свои после того, как это сделает другой парень.
Scimonster

1
Это исправлено. Мои извенения.
RubberDuck

1
Мой ответ тоже исправлен.
Майкл М.

1
У меня есть аккуратный план, не могу дождаться 8-часового таймера.
Nit



12

Ответ 14 - Луа

#[put
print("Hello World!")

Расстояние = 7


8
Аа, и мы вернулись к началу, хорошая работа.
Nit

привет @ Тимми, извини, но мне пришлось сменить ответ с печатного на кошачий.
Марк Габриэль

12

Ответ 21 - Хаскелл

putStrLn "Hello World!"

Расстояние: 7


4
Я единственный, кто думает, что версия на printХаскелле не такая, как у Локода?
Pharap

5
@Pharap: printназывается версия Haskell print, и она делает что-то довольно безрассудное: печатает какое-то значение любого типа - но в правильной записи Haskell! Таким образом, print 5дает в 5качестве выхода, и print "Hello World!"дает "Hello World!"; но задание было запрошено Hello Worldбез кавычек (что было бы недопустимо для Haskell).
перестал поворачиваться против часовой стрелки с

3
@Pharap actuallyНа самом деле он не работает ни с одним типом, а только со Showспособными типами.
перестал поворачиваться против часовой стрелки с

1
@leftaroundabout Ну Каждому Своё pulchrum Эст я полагаю.
Pharap

@ceasedtoturncounterclockwisdata W=World;data H=Hello W; Hello World
Esolanging Fruit

12

Ответ 26 - TI-BASIC (NSpire)

Disp "Hello World!"

Расстояние: 5 от ответа 25

(Проверено на калькуляторе TI-NSpire)


2
Я вижу, у вас есть калькулятор NSpire; это следует отметить в названии, поскольку TI-83/84 / + / SE не имеют строчных букв.
Timtech

2
@Timtech На самом деле они имеют строчные буквы. Если у вас есть MirageOS или другая пользовательская ОС, вы можете включить их. Вот скриншот программы, которую я написал недавно, которая использует строчные буквы.
wchargin


11

Ответ 7 - Баш

echo Hello World!

Это расстояние 7 от шестого ответа .


1
Отсюда ноль хромого расстояния будет Batch .... Быстрый @RandomUserViewingThisComment, отправьте его!
Джастин

@Quincunx Расстояние 1 с @символом.
jimmy23013

@ user23013 Хороший вопрос; Я очень плохо знаком с Batch .... Но это будет работать в командной строке.
Джастин

@Quincunx Или он будет напечатан \nX:\Your\Working\Directory>echo Hello World!\nHello World!в сценарии. Или я должен означать \r\nдля \n.
jimmy23013

@ user23013 О, это имеет смысл.
Джастин

11

Ответ 29 - MS Windows Powershell

#]trace=:(
'Hello World!'

Расстояние = 3 от ответа 28


3
На самом деле, мне понравилось, как только что появился панк-смайлик ... = :(
всегда

2
С этого момента ответы накапливаются нежелательно (обычно закомментированы). Ответ 85 (GDB) добавил «main», и ответы в конечном итоге достигли C, а затем Java.
Kernigh

11

Ответ 42 - ЛОЖЬ

{#ah="*#[.>]trac";cat<<@
#&&alert 
?} "Hello World!
"

Расстояние Левенштейна от # 41 равно 7. Протестировано с этой онлайн-реализацией FALSE. Я использовал оставшиеся слоты для редактирования расстояния, чтобы убрать немного грязи ...


Я должен был сделать кое-что из этой чистки, но сейчас не могу. Я бы сломал цепь.
TecBrat

3
случайное возражение за ответ 42 - ответ ложный: P
CoDEmanX

11

Ответ 150 - MuPAD

//#class jux{public static void main(String[] h){System.out.println(;\#//Hello*}}print,
"Hello World!"//print"putsx;//-##[;]#bye</>%"

Расстояние 6 от ответа 149 .

РЕДАКТИРОВАТЬ : добавлено «ч», чтобы переместить цепь вперед.


Ах ... Если бы вы могли просто поставить hпосле String[], следующий ответ был бы на Java;)
Оптимизатор

2
В интересах получения длинной цепочки, я предполагаю, что я просто обманул и отредактировал это прямо сейчас. ;-)
Кристофер Кройциг

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