Evolución de "Hello World!"


226

Este concurso ha terminado oficialmente, el ganador es jimmy23013 . ¡Felicidades!

El desafío es hacer un programa que imprima Hello World!en stdout. El problema es que su programa debe tener una distancia de Levenshtein de 7 o menos del programa en la respuesta presentada antes que la suya.

Cómo funcionará esto

A continuación ya he presentado la primera respuesta usando Python: print("Hello World!").

La siguiente persona que responda debe modificar la cadena print("Hello World!")con hasta 7 inserciones, eliminaciones o sustituciones de un solo carácter para que cuando se ejecute en cualquier idioma que no se haya utilizado hasta ahora (solo Python en este caso) la salida todavía Hello World!.

Por ejemplo, el segundo respondedor podría usar 1 sustitución ( r -> u), 2 eliminaciones ( in) y 1 inserción ( s) para hacer la cadena puts("Hello World!")que se imprime Hello World!cuando se ejecuta en Ruby.

La tercera persona a responder debe hacer lo mismo en un nuevo idioma, pero utilizando el programa de la respuesta de la segunda persona (por ejemplo puts("Hello World!")) como punto de partida. La cuarta respuesta estará en relación con la tercera respuesta y así sucesivamente.

Esto continuará hasta que todos se atasquen porque no hay un nuevo idioma en el que se pueda ejecutar el programa de la última respuesta cambiando solo 7 caracteres. El objetivo común es ver cuánto tiempo podemos mantener esto, así que trate de no hacer ediciones de caracteres oscuras o injustificadas (sin embargo, esto no es un requisito).

Formateo

Por favor, formatee su publicación de esta manera:

#Answer N - [language]

    [code]

[notes, explanation, observations, whatever]

Donde N es el número de respuesta (aumenta gradualmente, N = 1, 2, 3, ...).

No tiene que decir qué caracteres exactos se cambiaron. Solo asegúrese de que la distancia de Levenshtein sea de 0 a 7.

Reglas

La clave para entender sobre este desafío es que solo una persona puede responder a la vez y cada respuesta depende de la anterior .

Nunca debe haber dos respuestas con el mismo N. Si dos personas responden simultáneamente por un poco de N, el que respondió más tarde (incluso si es una diferencia de unos segundos) debería eliminar gentilmente su respuesta.

Además...

  • Un usuario solo puede enviar una respuesta por período de 8 horas. es decir, cada una de sus respuestas debe tener al menos 8 horas de diferencia. (Esto es para evitar que los usuarios vean constantemente la pregunta y respondan tanto como sea posible).
  • Un usuario no puede enviar dos respuestas seguidas. (por ejemplo, desde que envié la respuesta 1 no puedo responder 2, pero podría responder 3.)
  • Cada respuesta debe estar en un lenguaje de programación diferente.
    • Las diferentes versiones del mismo idioma cuentan como el mismo idioma.
    • Los idiomas cuentan como distintos si tradicionalmente se llaman con dos nombres diferentes. (Puede haber algunas ambigüedades aquí, pero no dejes que eso arruine el concurso).
  • Solo puede usar pestañas, líneas nuevas y ASCII imprimible . (Las nuevas líneas cuentan como un personaje).
  • El resultado solo debe ser Hello World!y no otros caracteres (una nueva línea inicial / final no es un problema).
  • Si su idioma no tiene stdout, use lo que se usa comúnmente para generar texto rápidamente (por ejemplo, console.logo alerten JavaScript).

Asegúrate de que tu respuesta sea válida. No queremos darnos cuenta de que hay una ruptura en la cadena de cinco respuestas. Las respuestas no válidas deben repararse rápidamente o eliminarse antes de que haya respuestas adicionales.

No edite las respuestas a menos que sea absolutamente necesario.

Puntuación

Una vez que las cosas se calman, el usuario que envía la mayoría de las respuestas (válidas) gana. Los lazos van al usuario con los votos positivos más acumulativos.

Tabla de clasificación: (fuera de fecha)

(el usuario debe tener al menos 2 respuestas válidas)

11 respuestas

7 respuestas

6 respuestas

5 respuestas

4 respuestas

3 respuestas

2 respuestas

Idiomas utilizados hasta ahora:

  1. Pitón
  2. CJam
  3. PHP
  4. Pyth
  5. Perl
  6. Befunge 98
  7. Golpetazo
  8. Nimrod
  9. Rubí
  10. GNU dc
  11. Golfscript
  12. Mathematica
  13. R
  14. Lua
  15. Sabio
  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. Potencia Shell
  30. K
  31. Visual FoxPro
  32. VBA
  33. BF Extendido Tipo III
  34. Zsh
  35. Guión, correr precipitadamente, precipitarse, ir de prisa
  36. Clojure
  37. NetLogo
  38. Maravilloso
  39. CoffeeScript
  40. Clíper
  41. BÁSICO
  42. FALSO
  43. pescado (concha)
  44. Octava GNU
  45. TCL
  46. mi
  47. nuevoLisp
  48. Ceceo
  49. SMT-LIBv2
  50. Raqueta
  51. Batsh
  52. tcsh
  53. AppleScript
  54. Ratón
  55. Duendecito
  56. F#
  57. Halcón
  58. Burlesco
  59. HTML
  60. SGML
  61. M4
  62. PAPERAS
  63. Texas
  64. Adelante
  65. Salmón
  66. Turing
  67. antes de Cristo
  68. Betterave
  69. Esquema
  70. Emacs Lisp
  71. Logo
  72. AutoLISP
  73. ///
  74. Rebol
  75. Arce
  76. FreeBASIC
  77. Vimscript
  78. ksh
  79. Cortar a tajos
  80. mIRC
  81. Lote
  82. Hacer
  83. Reducción
  84. sh
  85. GDB
  86. csh
  87. HQ9 + -
  88. Posdata
  89. Matlab
  90. Onz
  91. CASIO BÁSICO
  92. VBScript
  93. QBasic
  94. Tratamiento
  95. C
  96. Óxido 0.13
  97. Dardo
  98. Cafeína
  99. Algoid
  100. AMPL
  101. Alore
  102. Forobj
  103. T-SQL
  104. LiveCode
  105. Euforia
  106. SpeakEasy
  107. MediaWiki
  108. SmallBASIC
  109. REXX
  110. SQLite
  111. TPP
  112. Geom ++
  113. SQL (postgres)
  114. itflabtijtslwi
  115. RegXy
  116. Opal.rb
  117. Ardilla
  118. Empeñar
  119. Scala
  120. Rebmu
  121. Abucheo
  122. PARI / GP
  123. rojo
  124. Rápido
  125. BeanShell
  126. Vala
  127. Lucio
  128. Suneido
  129. AWK
  130. Neko
  131. AngelScript
  132. Gosu
  133. V
  134. ALAGUF
  135. BogusForth
  136. Trueno llameante
  137. Caché ObjectScript
  138. búho
  139. Cardenal
  140. Analizador
  141. Mueca
  142. Gatito
  143. TwoDucks
  144. Asíntota
  145. GATO
  146. IDL
  147. Minúsculo
  148. WTFZOMFG
  149. Io
  150. MuPAD
  151. Java
  152. Ónix
  153. JBoss
  154. S +
  155. Hexagonal
  156. yash
  157. Improbable
  158. despertar
  159. palo de golf
  160. cáscara incorporada busybox
  161. gammaplex
  162. KTurtle
  163. AGOL 68
  164. Alicia
  165. SML / NJ
  166. OCaml
  167. CDuce
  168. Baja carga
  169. Simplex v.0.6
  170. Minkolang 0.9
  171. Fexl 7.0.3
  172. Jolf
  173. Vitsy
  174. Y
  175. Retina
  176. Dragón de nombre clave
  177. Seriamente
  178. Reng v.3.3
  179. Fuzzy Octo Guacamole

(Siéntase libre de editar estas listas si son incorrectas o están desactualizadas).

Esta pregunta funciona mejor cuando ordena por más antigua .

NOTA: Esta es una pregunta de prueba para un nuevo tipo de desafío que tengo en mente donde cada respuesta depende de la última y aumenta la dificultad. Ven a discutirlo con nosotros en la sala de chat para esta pregunta o en meta .


61
"Ordenar por más antiguo" es útil aquí.
xnor


55
@Mew HQ9 + imprime el mensaje incorrecto. Pero este ... esolangs.org/wiki/Huby
Sp3000

17
Quizás esto pueda ser interesante: migl.io/projects/hw . Esta lista automáticamente las respuestas y muestra su tiempo de vida .
Michael M.

66
@gerrit Porque realmente podría usar 350 notificaciones de respuestas más ...
Calvin's Hobbies

Respuestas:


29

Respuesta 85 - GDB (depurador GNU)

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

Creo que esto también puede calificarse como lenguaje de programación. Tiene pares ify whilecomandos .

echo es otro comando incorporado en GDB.

Para ejecutar este código:

gdb --batch -x file

Distancia: 7 de la respuesta 84 .


Revise su respuesta, el 85 era una respuesta no válida (no noté que el idioma se había usado antes) y lo eliminé.
Nit

¿Algún enlace a GDB?
Optimizador

1
@Optimizer gnu.org/software/gdb The Gnu Debugger.
jimmy23013

Es como ejecutar un proyecto Java en Eclipse en lugar de Netbeans
Optimizer

3
Esta respuesta esta bien. GDB tiene un lenguaje de comando que se utiliza para ejecutar comandos de depuración específicos. Esto se hace ejecutando GDB en modo por lotes y especificando el archivo de comando usando --batch -x <file>. Este es un lenguaje legítimo. Ver aquí: sourceware.org/gdb/onlinedocs/gdb/Mode-Options.html ( -batch flag)

50

Respuesta 1 - Python

print("Hello World!")

Tiene que haber docenas de idiomas en los que esto podría transformarse.


113
¿Por qué está siendo votado a favor pero no la pregunta? Te garantizo que la pregunta fue más difícil de escribir;)
Calvin's Hobbies

9191
¿Por qué su comentario se vota más que su respuesta?
tomsmeding

23
@ Calvin'sHobbies Responde los votos positivos valen más, no deberías quejarte :-)
Angew

30
@tom ¿Por qué su comentario se vota más que esta respuesta?
nicael

24
^ ¡Todos ellos lamentan que no se otorguen representantes por votos a favor!
Optimizador

46

Respuesta 59 - HTML

¿Qué? No HTML?

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

Distancia desde la respuesta 58 : 6

Magia vudú? Nah Así es como funciona:

Puede tener cualquier etiqueta arbitraria en HTML, por lo que la primera parte <echo o[.]c;cat<<;#&&alert" ">es una echoetiqueta, que ahora se convierte en una etiqueta en blanco sin CSS aplicado por defecto por el navegador.

La o[.]c;cat<<;#&&alert" "parte es en realidad dos propiedades establecidas en esa etiqueta separadas por espacio. Entonces, la primera propiedad tiene la clave o[.]c;cat<<;#&&alert"y la segunda clave es "y ambos valores están en blanco.

La segunda parte es solo texto sin formato, Hello World!que es el contenido de texto de la echoetiqueta.

A continuación, HTML intenta encontrar la echoetiqueta de cierre , pero en su lugar, encuentra una vshetiqueta de cierre . Luego ignora la vshetiqueta de cierre (es decir </vsh) y cierra automáticamente la echoetiqueta.


2
@MAKZ HTML es bastante libre y suelto. Puede tener etiquetas de cierre de apertura inigualables y qué no. XHTML es bastante estricto. w3schools es un buen punto de partida.
Optimizador

3
Puede tener cualquier etiqueta en HTML, por lo que echo es una etiqueta normal. o[.]c;cat<<;#&&alert"es una propiedad en esa etiqueta y la última "es otra propiedad en esa etiqueta. También puede ver esto con la herramienta de desarrollador Inspector.
Optimizador

3
Bastante dang inteligente. Nunca lo habría pensado.
RubberDuck

15
Creo que esto es lo que sucede cuando lees documentos estándar a las 3 de la mañana mientras estás en peyote.
David Conrad el

55
@Optimizer Lectura obligatoria para personas que recomiendan w3schools. ;)
Martin Ender

39

Respuesta 95 - C

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

Distancia 7 de la respuesta 94


39
Sangriento finalmente.
Nit

@Optimizer No recibí ningún tipo de error de tiempo de ejecución al usar gcc 4.7.2 en mi computadora.
archaephyrryx

1
@Emil Just vim auto-indentación; La llamada de OP sobre qué hacer al respecto (si avanza demasiado para solucionarlo, puede fingir que es una pestaña y hacer la distancia 7)
archaephyrryx

1
@ user23013 Debido a que el programa no especifica intcomo tipo de retorno mainy en realidad no devuelve un código de salida; por lo tanto, el código de retorno es un comportamiento técnicamente indefinido, de ahí el 13.
Qix

1
Algunas de las respuestas anteriores (a partir de 85 GDB) hicieron un trabajo adicional para prepararse para C.
kernigh

29

Respuesta 22 - LOLCODE

VISIBLE "Hello World!"

Distancia: 6


Parece la distancia 6 para mí - eliminar p, ut-> VI, tr-> IB, n->E
isaacg

1
Gracias. Creo que copié un código diferente al calcular la distancia.
Snack

28

Respuesta 151 - Java

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

Distancia desde la respuesta 150 : 7

Pruébalo aquí

(Gracias a Christopher Creutzig por ser un deporte así :))


3
Ahora para la respuesta C #!
rodolphito




21

Respuesta 83 - Markdown

Qué ?? ¿Sin rebajas? :PAGS

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

Pruébalo aquí

Distancia desde la respuesta 82 : 7

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

Magia vudú ?? No !! Así es como funciona:

  • [text](link) crea un enlace

Entonces la primera parte del código es

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

Lo que crea un enlace de texto vacío con ubicación

#[.]c;cat;#&&alert"  "
     @echo
  • La siguiente parte Hello World!se imprime tal cual

  • Luego [;]:;#bye;dnl</vsh>crea un enlace de referencia para el ;cual se puede usar en cualquier lugar de la reducción.

Ex:

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

1
Se está volviendo cuestionable si ese es un lenguaje de programación . (Lo mismo para HTML en realidad.)
Martin Ender

1
Bueno, si HTML es un lenguaje, Markdown también lo es. Es la misma relación entre JS y Closure. Además, dado este desafío (1 idioma por año), estas reglas deberían aflojarse un poco.
Optimizador

1
Como dije, tampoco creo que HTML sea un lenguaje de programación para nuestros estándares. Pero para el propósito de este desafío en particular, probablemente esté bien aflojar esas reglas (pero idealmente, los pasatiempos de Calvin deberían decir eso).
Martin Ender

44
¿Podemos tener esta discusión en otro lugar en lugar de mi respuesta? :)
Optimizador

2
Sigue siendo bastante impresionante
Fabinout


18

Respuesta 12 - Mathematica

#[puts];
"Hello World!"

Distancia de 7. Intentando aclarar algo de ese desastre.



15

Respuesta 19 - VHDL

report "Hello World!";

Distancia: 6


1
wow :) ........ terco ¿eh?
MAKZ

3
Jaja, he estado esperando una pregunta de código de golf que me permite usar un HDL: p

15

Respuesta 6 - Befunge 98

<@,kb"Hello World!"

Distancia de 5 desde la respuesta anterior . Originalmente había un error donde kno estaba; Sin embargo, sé que estaba allí cuando escribí este programa. Supongo que simplemente no llegó a esta publicación.


Debería haber inflado esto, pero bueno.
Justin

Solo voy a publicar la respuesta 7 basada en la versión inflada ...
jimmy23013

66
@Quincunx No puedo imaginar que alguna vez podamos llegar a System.out.println...
Sp3000

44
@ Sp3000 En primer lugar, podemos escribir el programa Java en un comentario. Luego convierta todo lo demás en un comentario.
jimmy23013

44
Había considerado permitir múltiples respuestas por respuesta para que pudiera ramificarse como un árbol. Entonces ustedes podrían seguir su pequeña tangente Java. Sin embargo, eso sería demasiado confuso ...
Calvin's Hobbies

14

Respuesta 23 - APL

 "Hello World!"

Tenga en cuenta que hay un espacio de liderazgo.
Distancia: 7


2
el Wdebe estar en mayúscula para imprimir "Hello World!".

13

Respuesta 3 - PHP

<?="Hello World!"?>

Esta respuesta es una distancia 5 de la segunda respuesta .


Tenga en cuenta que la cadena "Hello World!"literal, que obviamente es la distancia 0 de la respuesta 2, es un programa PHP válido que genera la cadena requerida, y la declaración de impresión explícita es innecesaria.
hijarian

@hijarian: Eso solo es cierto para el shell PHP, lo que lo hace inválido para este desafío.
Dennis

1
@Dennis Si escribe un script helloworld.phpy coloca los 12 símbolos Hello World!allí y luego ejecuta este script php helloworld.php, se Hello World!imprimirá en stdout ya que PHP trata todo lo que está fuera de <?php ?>las instrucciones de procesamiento como texto sin formato para generar.
hijarian

Me he dado cuenta de que deberá eliminar las comillas (lo que hace que la distancia 2 de Levenstein) sea totalmente compatible.
hijarian

44
@Petah Entonces? Esto no es código golf. Se supone que no debemos hacerlo lo más breve o fácil posible para continuar.
PurkkaKoodari

13

Respuesta 28 - J

]trace=:('Hello World!')

Distancia = 5 de la respuesta 27


1
]+ =+ :+ '+ '= 5, ¿verdad?

3
Seguro. Lo perdí siendo rápido ... Este tipo de pregunta seguramente agrega una sensación en tiempo real a los desafíos de código: P.
jpjacobs

una de las anotaciones más extrañas para un idioma con un nombre tan simple ...
CoDEmanX

Y J podría haber sido la respuesta 2, eliminando la impresión y reemplazando el doble con comillas simples, terminando con ('Hello World!').
bcsb1001

13

Respuesta 33 BF Extendido Tipo III

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

Distancia 7 de la respuesta 32

Bueno, no he encontrado un intérprete para esa extensión, pero el código parece ajustarse a las especificaciones del idioma.

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
Para que lo sepas, la respuesta anterior no es válida, ya que tiene una distancia de 8. Sin embargo, eso debería ser solucionado eliminando algunos espacios, por lo que es posible que desees arreglar la tuya después de que el otro lo haga.
Scimonster

1
Está corregido Mis disculpas.
RubberDuck

1
Mi respuesta también es fija.
Michael M.

1
Tengo una ordenada lista para esto, no puedo esperar al temporizador de 8 horas.
Nit



12

Respuesta 14 - Lua

#[put
print("Hello World!")

Distancia = 7


8
Y estamos de vuelta al principio, buen trabajo.
Nit

hola @ Timmy, lo siento pero tuve que cambiar mi respuesta de impresión a gato.
Mark Gabriel

12

Respuesta 21: Haskell

putStrLn "Hello World!"

Distancia: 7


44
¿Soy el único que piensa que la versión de Haskell printes más antigua que la de LOLCODE?
Pharap

55
@Pharap: printse llama a la versión de Haskell print, y hace algo bastante tonto: imprime algún valor, de cualquier tipo, ¡pero en notación válida de Haskell! Por lo tanto, print 5rendimientos 5como producción y print "Hello World!"rendimientos "Hello World!"; pero el desafío solicitado Hello World, sin comillas (que no sería válido Haskell).
dejó de girar en contra del reloj el

3
@Pharap ¹En realidad no funciona con ningún tipo, solo con Showtipos capaces.
dejó de girar en contra del reloj el

1
@leftaroundabout Bueno, suum cuique pulchrum est supongo.
Pharap

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

12

Respuesta 26 - TI-BASIC (NSpire)

Disp "Hello World!"

Distancia: 5 de la respuesta 25

(Probado en una calculadora TI-NSpire)


2
Veo que tienes una calculadora NSpire; eso debe señalarse en el título ya que TI-83/84 / + / SE no tiene letras minúsculas.
Timtech

2
@Timtech En realidad tienen letras minúsculas. Si tiene MirageOS u otro sistema operativo personalizado, puede habilitarlos. Aquí hay una captura de pantalla de un programa que escribí hace un tiempo que usa letras minúsculas.
wchargin


11

Respuesta 7 - Bash

echo Hello World!

Esta es una distancia de 7 de la sexta respuesta .


1
Una distancia de cero cero desde aquí sería Batch .... Rápido @RandomUserViewingThisComment, ¡publícalo!
Justin

@Quincunx Distancia 1 con el @personaje.
jimmy23013

@ user23013 Buen punto; Estoy muy poco familiarizado con Batch ... Pero funcionaría en la línea de comandos.
Justin

@Quincunx O se imprimirá \nX:\Your\Working\Directory>echo Hello World!\nHello World!en un script. O debería decir \r\npara \n.
jimmy23013

@ user23013 Oh, eso tiene sentido.
Justin

11

Respuesta 29 - MS Windows Powershell

#]trace=:(
'Hello World!'

Distancia = 3 de la respuesta 28


3
En realidad, me gustó cómo apareció el smiley de pelo punk ... = :(
hasta el

2
A partir de este momento, las respuestas acumulan basura (generalmente comentada). La respuesta 85 (GDB) agregó un "principal", y las respuestas finalmente llegaron a C y luego a Java.
kernigh

11

Respuesta 42 - FALSO

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

La distancia de Levenshtein al # 41 es 7. Probado con esta implementación en línea de FALSE. Utilicé algunas ranuras de distancia de edición sobrantes para eliminar algunos cruft ...


Debería haber hecho algo de esa limpieza cruda yo mismo, pero ahora no puedo. Rompería la cadena.
TecBrat

3
voto al azar por ser la respuesta 42 - la respuesta es falsa: P
CoDEmanX

11

Respuesta 150 - MuPAD

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

Distancia 6 de la respuesta 149 .

EDITAR : Se agregó "h" para mover la cadena hacia adelante.


Ah ... Si pudieras haber puesto un hdespués del String[], la siguiente respuesta habría sido en Java;)
Optimizer

2
En aras de obtener una cadena larga, supongo que voy a engañar y editar eso ahora mismo. ;-)
Christopher Creutzig

10

Respuesta 30 - K

/#]trac
"Hello World!"

Distancia: 7 de la Respuesta 29

Creo que esto funciona, un intérprete está aquí (Kona) . /comienza un comentario de una línea en K. He limpiado parte del #]trace=:(desorden.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.