Evolution de "Hello World!"


226

Ce concours est officiellement terminé, le gagnant est jimmy23013 . Toutes nos félicitations!

Le défi consiste à créer un programme qui imprime Hello World!sur la sortie standard. Le problème est que votre programme doit avoir une distance de Levenshtein de 7 ou moins du programme dans la réponse soumise avant le vôtre.

Comment cela fonctionnera

Ci - dessous je vous ai déjà présenté la première réponse en utilisant Python: print("Hello World!").

La personne suivante à laquelle vous devez répondre doit modifier la chaîne print("Hello World!")avec jusqu'à 7 insertions, suppressions ou substitutions de caractères uniques, de sorte que la sortie, lorsqu'elle est exécutée dans une langue qui n'a pas encore été utilisée (uniquement Python dans ce cas), reste Hello World!.

Par exemple, le second répondant peut utiliser 1 substitution ( r -> u), 2 deletions ( in) et 1 insertion ( s) pour créer la chaîne puts("Hello World!")imprimée Hello World!lorsqu’elle est exécutée en Ruby.

La troisième personne à répondre doit faire la même chose dans une nouvelle langue, mais en utilisant le programme de la réponse de la deuxième personne (par exemple puts("Hello World!")) comme point de départ. La quatrième réponse sera en relation avec la troisième réponse et ainsi de suite.

Cela continuera jusqu'à ce que tout le monde soit bloqué, car il n'y a pas de nouvelle langue. Le programme de la dernière réponse peut être exécuté en ne modifiant que 7 caractères. Le but commun est de voir combien de temps nous pouvons continuer, alors essayez de ne pas faire de modifications de personnage obscures ou injustifiées (ceci n’est cependant pas une obligation).

Mise en page

Veuillez formater votre message de la manière suivante:

#Answer N - [language]

    [code]

[notes, explanation, observations, whatever]

Où N est le numéro de réponse (augmente progressivement, N = 1, 2, 3, ...).

Vous n'êtes pas obligé de dire quels caractères exacts ont été changés. Assurez-vous simplement que la distance de Levenshtein est comprise entre 0 et 7.

Règles

L’essentiel pour comprendre ce défi est qu’une seule personne à la fois peut répondre et que chaque réponse dépend de celle qui la précède .

Il ne devrait jamais y avoir deux réponses avec le même N. S'il arrive que deux personnes répondent simultanément pour un certain N, celui qui a répondu plus tard (même s'il y a une différence de quelques secondes) devrait effacer gracieusement sa réponse.

En outre...

  • Un utilisateur ne peut soumettre qu'une seule réponse par période de 8 heures. Autrement dit, chacune de vos réponses doit être espacée d'au moins 8 heures. (Ceci afin d’empêcher les utilisateurs de regarder constamment la question et de répondre autant que possible.)
  • Un utilisateur ne peut pas soumettre deux réponses consécutives. (par exemple, depuis que j'ai soumis la réponse 1, je ne peux pas répondre à la question 2, mais je pourrais en faire la réponse 3.)
  • Chaque réponse doit être dans un langage de programmation différent.
    • Différentes versions d'une même langue comptent comme une même langue.
    • Les langues sont considérées comme distinctes si elles sont traditionnellement appelées par deux noms différents. (Il y a peut-être des ambiguïtés ici, mais ne laissez pas cela gâcher le concours.)
  • Vous ne pouvez utiliser que des onglets, des nouvelles lignes et des fichiers ASCII imprimables . (Les nouvelles lignes comptent pour un caractère.)
  • La sortie ne devrait être que Hello World!et aucun autre caractère (un retour à la ligne début / fin n'est pas un problème).
  • Si votre langue n'a pas stdout, utilisez ce qui est couramment utilisé pour produire rapidement du texte (par exemple console.logou alerten JavaScript).

Assurez-vous que votre réponse est valide. Nous ne voulons pas nous rendre compte qu'il y a une rupture dans la chaîne avec cinq réponses. Les réponses non valides doivent être corrigées rapidement ou supprimées avant que d'autres réponses ne soient disponibles.

Ne modifiez pas les réponses sauf si absolument nécessaire.

Notation

Une fois que les choses se sont stabilisées, l'utilisateur qui envoie les réponses les plus (valides) l'emporte. Les liens vont à l'utilisateur avec le plus grand nombre de votes cumulatifs.

Classement: (périmé)

(l'utilisateur doit avoir au moins 2 réponses valides)

11 réponses

7 réponses

6 réponses

5 réponses

4 réponses

3 réponses

2 réponses

Langues utilisées jusqu'à présent:

  1. Python
  2. CJam
  3. PHP
  4. Pyth
  5. Perl
  6. Befunge 98
  7. Frapper
  8. Nimrod
  9. Rubis
  10. GNU dc
  11. Golfscript
  12. Mathematica
  13. R
  14. Lua
  15. sauge
  16. Julia
  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. K
  31. Visual FoxPro
  32. VBA
  33. BF étendu de type III
  34. Zsh
  35. Tiret
  36. Clojure
  37. NetLogo
  38. Sensationnel
  39. CoffeeScript
  40. Tondeuse
  41. DE BASE
  42. FAUX
  43. poisson (coquille)
  44. GNU Octave
  45. TCL
  46. E
  47. nouveauLisp
  48. Zézayer
  49. SMT-LIBv2
  50. Raquette
  51. Batsh
  52. tcsh
  53. AppleScript
  54. Souris
  55. Lutin
  56. F#
  57. Faucon
  58. Burlesque
  59. HTML
  60. SGML
  61. M4
  62. OREILLONS
  63. Texas
  64. 4ème
  65. Saumon
  66. Turing
  67. avant JC
  68. Betterave
  69. Schème
  70. Emacs Lisp
  71. Logo
  72. AutoLISP
  73. ///
  74. Rebol
  75. Érable
  76. FreeBASIC
  77. Vimscript
  78. ksh
  79. Pirater
  80. mIRC
  81. Lot
  82. Faire
  83. Réduction
  84. sh
  85. GDB
  86. csh
  87. HQ9 + -
  88. Postscript
  89. Matlab
  90. Oz
  91. CASIO BASIC
  92. VBScript
  93. QBasic
  94. En traitement
  95. C
  96. Rouille 0,13
  97. Dard
  98. Kaffeine
  99. Algue
  100. AMPL
  101. Alore
  102. Forobj
  103. T-SQL
  104. LiveCode
  105. Euphorie
  106. SpeakEasy
  107. MediaWiki
  108. PetitBASIC
  109. REXX
  110. SQLite
  111. TPP
  112. Geom ++
  113. SQL (postgres)
  114. itflabtijtslwi
  115. RegXy
  116. Opal.rb
  117. Écureuil
  118. Pion
  119. Scala
  120. Rebmu
  121. Huer
  122. PARI / GP
  123. rouge
  124. Rapide
  125. BeanShell
  126. Vala
  127. Brochet
  128. Suneido
  129. AWK
  130. Neko
  131. AngelScript
  132. Gosu
  133. V
  134. ALAGUF
  135. BogusForth
  136. Tonnerre enflammé
  137. Caché ObjectScript
  138. hibou
  139. Cardinal
  140. Analyseur
  141. Sourire
  142. Chaton
  143. TwoDucks
  144. Asymptote
  145. CHAT
  146. IDL
  147. Minuscule
  148. WTFZOMFG
  149. Io
  150. MuPAD
  151. Java
  152. Onyx
  153. JBoss
  154. S +
  155. Hexish
  156. yash
  157. Improbable
  158. réveiller
  159. gosse
  160. shell intégré busybox
  161. gammaplex
  162. KTurtle
  163. AGOL 68
  164. Alice
  165. SML / NJ
  166. OCaml
  167. CDuce
  168. Sous-charge
  169. Simplex v.0.6
  170. Minkolang 0.9
  171. Fexl 7.0.3
  172. Jolf
  173. Vitsy
  174. Y
  175. Rétine
  176. Nom de code Dragon
  177. Sérieusement
  178. Reng v.3.3
  179. Fuzzy Octo Guacamole

(N'hésitez pas à modifier ces listes si elles sont incorrectes ou obsolètes.)

Cette question fonctionne mieux lorsque vous triez par le plus ancien .

NOTE: Ceci est une question d’essai pour un nouveau type de défi auquel je pense, où chaque réponse dépend du dernier et augmente en difficulté. Venez en discuter avec nous dans le chat pour cette question ou en méta .


61
"Trier par le plus ancien" est utile ici.
xnor


5
@Mew HQ9 + imprime le mauvais message. Mais celui-ci ... esolangs.org/wiki/Huby
Sp3000

17
Peut-être que cela peut être intéressant: migl.io/projects/hw . Cette liste automatiquement les réponses et affiche leur durée de vie .
Michael M.

6
@gerrit Parce que je pourrais utiliser 350 notifications de réponses supplémentaires ...
Calvin's Hobbies

Réponses:


29

Réponse 85 - GDB (débogueur GNU)

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

Je pense que cela peut aussi être qualifié de langage de programmation. Il a même ifet whilecommandes .

echo est une autre commande intégrée à GDB.

Pour exécuter ce code:

gdb --batch -x file

Distance: 7 de la réponse 84 .


Veuillez réviser votre réponse, le 85 était une réponse invalide (je n'avais pas remarqué que le langage avait déjà été utilisé) et je l'ai supprimé.
Nit

Un lien vers GDB?
Optimiseur

1
@Optimizer gnu.org/software/gdb Le débogueur Gnu.
Jimmy23013

C'est comme si on exécutait un projet Java dans Eclipse plutôt que dans Netbeans
Optimiseur,

3
Cette réponse est bien. GDB a un langage de commande utilisé pour exécuter des commandes de débogage spécifiques. Cela se fait en exécutant GDB en mode de traitement par lots et en spécifiant le fichier de commande à l'aide de --batch -x <file>. C'est un langage légitime. Voir ici: sourceware.org/gdb/onlinedocs/gdb/Mode-Options.html ( -batch flag)

50

Réponse 1 - Python

print("Hello World!")

Il doit y avoir des dizaines de langues dans lesquelles cela pourrait se transformer.


113
Pourquoi cela a-t-il été voté mais pas la question? Je vous garantis que la question était plus difficile à écrire;)
Calvin's Hobbies

91
Pourquoi votre commentaire est-il plus voté que votre réponse?
tomsmeding

23
@ Calvin'sHobbies Réponse aux votes positifs, vous ne devriez pas vous plaindre :-)
Angew

30
@tom Pourquoi votre commentaire a-t-il été voté plus fort que cette réponse?
Nicael

24
^ Ils ont tous regretté qu’aucun représentant n’ait été attribué pour les votes de commentaires!
Optimiseur

46

Réponse 59 - HTML

Quelle? Pas de HTML ??

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

Distance de la réponse 58 : 6

La magie vaudou? Nah. Voici comment cela fonctionne:

Vous pouvez avoir n'importe quelle balise arbitraire en HTML. La première partie <echo o[.]c;cat<<;#&&alert" ">est une echobalise, qui devient maintenant une balise vide sans CSS appliquée par défaut par le navigateur.

La o[.]c;cat<<;#&&alert" "pièce est en fait deux propriétés définies sur cette balise séparées par un espace. Donc, la première propriété a la clé o[.]c;cat<<;#&&alert"et la seconde est "et les deux valeurs sont vides.

La deuxième partie est simplement du texte brut Hello World!qui correspond au contenu du texte de la echobalise.

Ensuite, HTML essaie de trouver la echobalise de fermeture , mais à la place, trouve une vshbalise de fermeture . Il ignore ensuite la vshbalise de fermeture (c'est-à-dire </vsh) et ferme automatiquement la echobalise.


2
@MAKZ HTML est assez libre et lâche. Vous pouvez avoir des balises de fermeture d'ouverture incomparables et ce qui ne l'est pas. XHTML est assez strict. w3schools est un bon point de départ.
Optimiseur

3
Vous pouvez avoir n'importe quelle balise en HTML, donc echo est une balise normale. o[.]c;cat<<;#&&alert"est une propriété sur cette balise et la dernière "est une autre propriété sur cette balise. Vous pouvez également le voir à l'aide de l'outil de développement Inspector.
Optimiseur

3
Plutôt malin. Je n'y aurais jamais pensé.
RubberDuck

15
Je pense que c'est ce qui se produit lorsque vous lisez des documents de normes à 3 heures du matin alors que vous êtes sur le peyotl.
David Conrad

5
@Optimizer Lecture obligatoire pour les personnes recommandant w3schools. ;)
Martin Ender

39

Réponse 95 - C

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

Distance 7 de la réponse 94


39
Sanglant finalement.
Nit

@Optimizer Je n'ai rencontré aucun type d'erreur d'exécution lors de l'utilisation de gcc 4.7.2 sur mon ordinateur.
archaephyrryx

1
@ Emil Just vim auto-indentation; Appel d'Op sur quoi faire à ce sujet (s'il avance trop loin pour être corrigé, vous pouvez simplement prétendre que c'est un onglet et
raccourcir

1
@ user23013 Parce que le programme ne spécifie pas intcomme type de retour mainet ne renvoie pas de code de sortie; par conséquent, le code de retour est un comportement techniquement indéfini, d'où le 13.
Qix

1
Certaines des réponses précédentes (à partir de 85 GDB) ont
fourni

29

Réponse 22 - LOLCODE

VISIBLE "Hello World!"

Distance: 6


On dirait que la distance 6 pour moi - supprimer p, ut-> VI, tr-> IB, n->E
isaacg

1
Merci. Je pense avoir copié un code différent lors du calcul de la distance.
Snack

28

Réponse 151 - Java

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

Distance de la réponse 150 : 7

Essayez-le ici

(Merci à Christopher Creutzig d'être un tel sport :))


3
Maintenant pour la réponse C #!
Rodolphito



21

Réponse 11 - Golfscript

#[puts "\x48]
"Hello World!"

Une distance de 5.


21

Réponse 83 - Markdown

Quoi ?? Pas de démarque? : P

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

Essayez-le ici

Distance de la réponse 82 : 7

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

La magie vaudou ?? Nah !! Voici comment cela fonctionne:

  • [text](link) crée un lien.

Donc, la première partie du code est

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

Ce qui crée un lien de texte vide avec emplacement

#[.]c;cat;#&&alert"  "
     @echo
  • La partie suivante Hello World!est imprimée telle quelle

  • [;]:;#bye;dnl</vsh>Crée ensuite un lien de référence ;pouvant être utilisé n’importe où dans le démarque.

Ex:

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

1
Il devient discutable de savoir si c'est un langage de programmation . (Idem pour HTML en fait.)
Martin Ender

1
Eh bien, si HTML est un langage, Markdown l'est aussi. C'est la même relation entre JS et Closure. De plus, étant donné ce défi (1 langue par an), ces règles doivent être un peu assouplies.
Optimiseur

1
Comme je l'ai dit, je ne pense pas que HTML soit un langage de programmation selon nos normes. Mais dans le cadre de ce défi particulier, il est probablement bon de relâcher ces règles (mais idéalement, Calvin's Hobbies devrait le préciser).
Martin Ender

4
Pouvons-nous avoir cette discussion ailleurs que sur ma réponse? :)
Optimiseur

2
Toujours assez impressionnant
Fabinout


18

Réponse 12 - Mathematica

#[puts];
"Hello World!"

Distance de 7. Tenter de nettoyer une partie de ce gâchis.



15

Réponse 19 - VHDL

report "Hello World!";

Distance: 6


1
wow :) ........ têtu hein?
MAKZ

3
Haha, j'attendais une question sur le code de golf qui me permette d'utiliser un HDL: p

15

Réponse 6 - Befunge 98

<@,kb"Hello World!"

Distance de 5 de la réponse précédente . Il y avait à l'origine un bug où le kn'était pas là; Je sais que c'était là quand j'ai écrit ce programme, cependant. Je suppose que cela n’a pas été inclus dans ce post.


J'aurais dû gonfler ça, mais bon.
Justin

Je vais juste poster la réponse 7 basée sur la version gonflée ...
jimmy23013

6
@Quincunx Je ne peux pas imaginer que nous puissions jamais atteindre System.out.println...
Sp3000

4
@ Sp3000 Nous pouvons tout d'abord écrire le programme Java dans un commentaire. Puis transformez tout le reste en un commentaire.
Jimmy23013

4
J'avais envisagé de permettre des réponses multiples par réponse afin qu'elle puisse se diviser comme un arbre. Ensuite, vous pourrez utiliser votre petite tangente Java. Ce serait bien trop déroutant cependant ...
Calvin's Hobbies

14

Réponse 23 - APL

 "Hello World!"

Notez qu'il y a un espace principal.
Distance: 7


2
le Wdoit être en majuscule pour imprimer "Hello World!".

13

Réponse 3 - PHP

<?="Hello World!"?>

Cette réponse est à 5 distance de la deuxième réponse .


Veuillez noter que la chaîne "Hello World!"mot à mot, qui est évidemment la distance 0 de la réponse 2, est un programme PHP valide produisant la chaîne requise et qu'une instruction d'impression explicite est inutile.
hijare

@hijarian: Ce n'est vrai que pour le shell PHP, ce qui le rend invalide pour ce challenge.
Dennis

1
@Dennis Si vous écrivez un script helloworld.phpet y mettez les 12 symboles Hello World!, puis que vous l'exécutez php helloworld.php, vous serez Hello World!imprimé sur stdout, car PHP traitera tout ce qui est en dehors des <?php ?>instructions de traitement comme un texte brut à afficher.
hijare

Je me suis rendu compte que vous aurez besoin de supprimer les guillemets (ce qui rend la distance de Levenstein 2) pour être totalement conforme.
hijare

4
@Petah Alors? Ce n'est pas du code golf. Nous ne sommes pas censés faire en sorte que ce soit aussi bref ou aussi facile que possible.
PurkkaKoodari

13

Réponse 28 - J

]trace=:('Hello World!')

Distance = 5 de la réponse 27


1
]+ =+ :+ '+ '= 5, c'est ça?

3
Sûr. Cela a manqué d’être rapide ... Ce type de question ajoute sûrement un sentiment en temps réel aux problèmes de code: P.
jpjacobs

une des notations les plus étranges pour une langue avec un nom si simple ...
CoDEmanX

Et J aurait pu être la réponse 2, en supprimant l’impression et en remplaçant le double par des guillemets simples, pour finir par ('Hello World!').
bcsb1001

13

Réponse 33 - BF étendu de type III

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

Distance 7 de réponse 32

Eh bien, je n'ai pas trouvé d'interprète pour cette extension mais le code semble correspondre aux spécifications de la langue.

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
Juste pour que vous sachiez, la réponse ci-dessus est invalide car elle a une distance de 8. Cela devrait être réparable en supprimant quelques espaces, de sorte que vous voudrez peut-être réparer le vôtre après que l'autre personne le fasse.
Scimonster

1
C'est corrigé. Mes excuses.
RubberDuck

1
Ma réponse est également fixée.
Michael M.

1
J'en ai un qui est bien rangé pour ça, j'ai hâte au minuteur de 8 heures.
Nit



12

Réponse 14 - Lua

#[put
print("Hello World!")

Distance = 7


8
Nous sommes de retour au début, bon travail.
Nit

salut @Timmy, je suis désolé mais je devais changer ma réponse de print à cat.
Marc Gabriel

12

Réponse 21 - Haskell

putStrLn "Hello World!"

Distance: 7


4
Suis-je le seul à penser que la version de Haskell printest plus élaborée que celle de LOLCODE?
Pharap

5
@Pharap: la version de Haskell printest appelée print, et elle fait quelque chose d'assez décevant: affiche une valeur, de n'importe quel type¹ - mais en notation Haskell valide! Donc, les print 5rendements 5en sortie et les print "Hello World!"rendements "Hello World!"; mais le défi demandé Hello World, sans guillemets (qui ne serait pas valide Haskell).
cessé de tourner dans

3
@Pharap ¹Il ne fonctionne réellement avec aucun type, mais uniquement avec des Showtypes capables.
cessé de tourner dans

1
@leftaroundabout Eh bien, je suppose Suum cuique pulchrum est .
Pharap

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

12

Réponse 26 - TI-BASIC (NSpire)

Disp "Hello World!"

Distance: 5 de la réponse 25

(Testé sur une calculatrice TI-NSpire)


2
Je vois que vous avez une calculatrice NSpire; cela devrait être noté dans le titre car TI-83/84 / + / SE ne contient pas de lettres minuscules.
Timtech

2
@ Timtech Ils ont en réalité des lettres minuscules. Si vous avez MirageOS ou un autre système d'exploitation personnalisé, vous pouvez les activer. Voici une capture d' écran d'un programme que j'ai écrit il y a quelque temps et qui utilise des lettres minuscules.
wchargin


11

Réponse 7 - Bash

echo Hello World!

C'est une distance de 7 de la sixième réponse .


1
Une distance nulle à partir d’ici serait Batch .... Quick @RandomUserViewingThisComment, allez le poster!
Justin

@Quincunx Distance 1 avec le @personnage.
jimmy23013

@ user23013 Bon point; Je connais très mal Batch ... Mais cela fonctionnerait en ligne de commande.
Justin

@Quincunx Ou il sera imprimé \nX:\Your\Working\Directory>echo Hello World!\nHello World!dans un script. Ou je devrais dire \r\npour \n.
Jimmy23013

@ user23013 Oh, c'est logique.
Justin

11

Réponse 29 - Powershell sous Windows

#]trace=:(
'Hello World!'

Distance = 3 de la réponse 28


3
En fait, j'ai bien aimé l'apparition du smiley aux cheveux punk ... = :(
agtoever

2
À partir de ce moment, les réponses s'accumulent (souvent commentées). Réponse 85 (GDB) a ajouté un "principal", et les réponses ont finalement atteint C, puis Java.
kernigh

11

Réponse 42 - FAUX

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

La distance de Levenshtein par rapport à 41 est de 7. Testée avec cette implémentation en ligne de FALSE. J'ai utilisé des emplacements restants pour modifier la distance afin de supprimer quelques ...


J'aurais dû faire une partie de ce nettoyage cruel moi-même, mais je ne peux pas maintenant. Je briserais la chaîne.
TecBrat

3
Vote aléatoire pour la réponse 42 - la réponse est fausse: P
CoDEmanX

11

Réponse 150 - MuPAD

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

Distance 6 de la réponse 149 .

EDIT : «h» ajouté pour faire avancer la chaîne.


Ah ... Si vous pouviez mettre juste haprès String[], la réponse suivante aurait été en Java;)
Optimiseur

2
Dans l’intérêt d’obtenir une longue chaîne, je suppose que je vais simplement tricher et éditer cela maintenant. ;-)
Christopher Creutzig

10

Réponse 30 - K

/#]trac
"Hello World!"

Distance: 7 de Réponse 29

Je pense que cela fonctionne, un interprète est ici (Kona) . /commence un commentaire d'une ligne dans K. J'ai nettoyé une partie du #]trace=:(gâchis.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.