Еволюція "Привіт Світу!"


226

Цей конкурс офіційно закінчений, переможець - jimmy23013 . Вітаємо!

Завдання полягає в тому, щоб зробити програму, яка друкує Hello World!для stdout. Проблема полягає в тому, що у вашій програмі відповідь Левенштейна має відстань 7 або менше від програми у відповіді, поданій перед вашою.

Як це буде працювати

Нижче я вже подав першу відповідь за допомогою Python : print("Hello World!").

Наступна особа, яка відповість, повинна змінити рядок print("Hello World!")із до 7 вставками, видаленнями чи замінами одного символу таким чином, що коли вона виконується будь-якою мовою, яка до цього часу не використовувалася (у цьому випадку лише Python), вихід буде нерухомим Hello World!.

Наприклад, другий відповідач може використовувати 1 заміну ( r -> u), 2 видалення ( in) та 1 вставку ( 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!жодних інших символів (провідний / трейлінг нового рядка не є проблемою).
  • Якщо у вашій мові немає stdout, використовуйте все, що зазвичай використовується для швидкого виведення тексту (наприклад, console.logабо alertв JavaScript).

Будь ласка, переконайтесь, що ваша відповідь справедлива. Ми не хочемо усвідомлювати, що в ланцюжку розривається п'ять відповідей. Недійсні відповіді слід швидко виправити або видалити до появи додаткових відповідей.

Не редагуйте відповіді, якщо це абсолютно не потрібно.

Оцінка балів

Після того, як все налагодиться, перемагає користувач, який подає найбільш (дійсні) відповіді. Зв'язки переходять до користувача з найбільш сукупними голосами.

Табло: (застаріло)

(користувач повинен мати щонайменше 2 дійсних відповіді)

11 відповідей

7 відповідей

6 відповідей

5 відповідей

4 відповіді

3 відповіді

2 відповіді

Досі використовувані мови:

  1. Пітон
  2. CJam
  3. PHP
  4. Піт
  5. Perl
  6. Befunge 98
  7. Баш
  8. Німрод
  9. Рубін
  10. GNU dc
  11. Гольфскрипт
  12. Математика
  13. R
  14. Луа
  15. Мудрець
  16. Юлія
  17. Scilab
  18. JavaScript
  19. VHDL
  20. HyperTalk
  21. Хаскелл
  22. ЛОЛКОД
  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. Зш
  35. Тире
  36. Clojure
  37. NetLogo
  38. Groovy
  39. CoffeeScript
  40. Кліпер
  41. ОСНОВНІ
  42. ПОМИЛКОВИЙ
  43. риба (шкаралупа)
  44. Октава ГНУ
  45. TCL
  46. Е
  47. newLisp
  48. Лісп
  49. SMT-LIBv2
  50. Ракетка
  51. Батш
  52. тч
  53. AppleScript
  54. Миша
  55. Піксі
  56. F #
  57. Сокіл
  58. Бурлеск
  59. HTML
  60. SGML
  61. М4
  62. СУМКА
  63. TeX
  64. Четвертий
  65. Лосось
  66. Тюрінг
  67. до н.е.
  68. Betterave
  69. Схема
  70. Emacs Lisp
  71. Логотип
  72. AutoLISP
  73. ///
  74. Rebol
  75. Клен
  76. FreeBASIC
  77. Вимскрипт
  78. кш
  79. Рубати
  80. mIRC
  81. Партія
  82. Зробіть
  83. Відмітка
  84. ш
  85. ГДБ
  86. csh
  87. HQ9 + -
  88. Постскрипт
  89. Матлаб
  90. Оз
  91. КАЗІО ОСНОВА
  92. VBScript
  93. QBasic
  94. Обробка
  95. С
  96. Іржа 0,13
  97. Дартс
  98. Кафеїн
  99. Алгоїдні
  100. AMPL
  101. Алор
  102. Форобдж
  103. T-SQL
  104. LiveCode
  105. Ейфорія
  106. SpeakEasy
  107. MediaWiki
  108. SmallBASIC
  109. REXX
  110. SQLite
  111. ТЕС
  112. Geom ++
  113. SQL (постгреси)
  114. itflabtijtslwi
  115. RegXy
  116. Опал.рб
  117. Білка
  118. Пішак
  119. Скала
  120. Ребму
  121. Бу
  122. PARI / GP
  123. Червоний
  124. Швидкий
  125. BeanShell
  126. Вала
  127. Щука
  128. Сунейдо
  129. AWK
  130. Неко
  131. AngelScript
  132. держ
  133. V
  134. АЛАГУФ
  135. BogusForth
  136. Палаючий грім
  137. Caché ObjectScript
  138. сова
  139. Кардинал
  140. Парсер
  141. Грін
  142. Кошеня
  143. TwoDucks
  144. Асимптота
  145. CAT
  146. IDL
  147. Крихітні
  148. WTFZOMFG
  149. Іо
  150. MuPAD
  151. Java
  152. Онікс
  153. JBoss
  154. S +
  155. Гексиш
  156. яш
  157. Неймовірна
  158. розбудити
  159. брат
  160. вбудована оболонка для заняття
  161. гаммаплекс
  162. KTurtle
  163. АГОЛ 68
  164. Аліса
  165. SML / NJ
  166. OCaml
  167. CDuce
  168. Недовантажений
  169. Simplex v.0.6
  170. Мінколанг 0,9
  171. Fexl 7.0.3
  172. Джольф
  173. Віті
  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 відповідей на відповіді ...
Захоплення Calvin

Відповіді:


29

Відповідь 85 - GDB (налагоджувач GNU)

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

Я думаю, що це також можна кваліфікувати як мову програмування. У нього є навіть ifі whileкоманди .

echo - це ще одна вбудована команда в GDB.

Щоб запустити цей код:

gdb --batch -x file

Відстань: 7 від відповіді 84 .


Будь ласка, перегляньте свою відповідь, 85 була невірною відповіддю (я раніше не помічала мову, якою я користувалася), і я її видалив.
Ніт

Будь-яке посилання на GDB?
Оптимізатор

1
@Optimizer gnu.org/software/gdb Налагоджувач Gnu.
jimmy23013

Це як проект Java у Eclipse, а не Netbeans
Optimizer

3
Ця відповідь чудова. GDB має мову команд, яка використовується для виконання певних команд налагодження. Це робиться шляхом запуску GDB в пакетному режимі та вказівки використання командного файлу --batch -x <file>. Це законна мова. Дивіться тут: sourceware.org/gdb/onlinedocs/gdb/Mode-Options.html ( -batch flag)

50

Відповідь 1 - Пітон

print("Hello World!")

Має бути десяток мов, на які це може перетворитись.


113
Чому це підкреслюється, але це не питання? Я гарантую вам, що запитання було складніше написати;)
Захоплення Кальвіна

91
Чому ваш коментар піддають голосування більше, ніж ваша відповідь?
tomsmeding

23
@ Calvin'sHobbies Оцінки на відповіді варті більше, не варто скаржитися :-)
Angew

30
@tom Чому за ваш коментар додано більше голосів, ніж ця відповідь?
nicael

24
^ Всі вони висловлюють жаль за те, що репортерів не надано за оновлення коментарів!
Оптимізатор

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.
архефірикс

1
@Emil Тільки 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 - Відмітка

Що ?? Ніякої відмітки? : P

[](#[.]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 та закриттям. Крім того, враховуючи цей виклик (1 янг на рік), ці правила слід трохи послабити.
Оптимізатор

1
Як я вже говорив, я не думаю, що HTML є мовою програмування ні за нашими стандартами. Але для цього конкретного виклику, мабуть, цілком нормально послабити ці правила (але в ідеалі Кабінові хобі повинні це заявити).
Мартін Ендер

4
Чи можемо ми вести цю дискусію деінде, а не на мою відповідь? :)
Оптимізатор

2
Ще досить вражаючий
Fabinout


18

Відповідь 12 - Математика

#[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, що виводить необхідну рядок, і явна заява друку не є необхідною.
хіджар

@hijarian: Це справедливо лише для оболонки PHP, що робить її недійсною для цього завдання.
Денніс

1
@Dennis Якщо ви пишете сценарій helloworld.phpі поміщаєте туди 12 символів, Hello World!а потім запускаєте цей скрипт php helloworld.php, ви отримаєте Hello World!друк у stdout, оскільки 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 тип 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-годинного таймера.
Ніт



12

Відповідь 14 - Луа

#[put
print("Hello World!")

Відстань = 7


8
І ми повернулися до початку, хороша робота.
Ніт

привіт @Timmy, вибач, але мені довелося змінити свою відповідь з друку на cat.
Марк Габріель

12

Відповідь 21 - Хаскелл

putStrLn "Hello World!"

Відстань: 7


4
Я єдиний, хто вважає, що версія Haskell printє більш дрібна, ніж версія LOLCODE?
Фарап

5
@Pharap: Версія Haskell printвикликається print, і вона робить щось досить непросто: друкуйте якесь значення будь-якого типу - але у дійсній нотації Haskell! Отже, print 5врожайність 5як вихід, так і print "Hello World!"врожайність "Hello World!"; але прохання просили Hello Worldбез лапок (що не було б дійсним Haskell).
перестала повертати проти годинника,

3
@Pharap actuallyНасправді він не працює з будь-яким типом, лише з Showможливими типами.
перестала повертати проти годинника,

1
@leftaroundabout Ну, я думаю , suum cuique pulchrum
Фарап

@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 не мають малих літер.
Тімтех

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
Насправді мені сподобалося, як тільки з'явився смайлик з панками ... = :(
agtoever

2
З цього моменту у відповідях накопичується мотлох (зазвичай коментується). Відповідь 85 (GDB) додала "головне", і відповіді в підсумку дійшли до 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 .

EDIT : Для переміщення ланцюга вперед додано “h”.


Ах ... Якби ви могли просто поставити hпісля String[], наступна відповідь була б у Java;)
Оптимізатор

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

10

Відповідь 30 - К

/#]trac
"Hello World!"

Відстань: 7 від відповіді 29

Я думаю, що це працює, тут перекладач (Кона) . /починає однорядковий коментар у К. Я прибрав частину #]trace=:(безладу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.