Evoluzione di "Hello World!"


226

Il concorso è ufficialmente terminato, il vincitore è jimmy23013 . Congratulazioni!

La sfida è creare un programma che stampa Hello World!su stdout. Il problema è che il tuo programma deve avere una distanza di Levenshtein di 7 o meno dal programma nella risposta inviata prima della tua.

Come funzionerà

Qui di seguito ho già presentato la prima risposta utilizzando Python: print("Hello World!").

La persona successiva a cui rispondere deve modificare la stringa print("Hello World!")con un massimo di 7 inserimenti, eliminazioni o sostituzioni di caratteri singoli in modo che quando viene eseguito in qualsiasi lingua non utilizzata finora (solo Python in questo caso) l'output sia fermo Hello World!.

Ad esempio, il secondo risponditore potrebbe utilizzare 1 sostituzione ( r -> u), 2 eliminazioni ( in) e 1 inserimento ( s) per creare la stringa puts("Hello World!")che viene stampata Hello World!quando viene eseguita in Ruby.

La terza persona a cui rispondere deve fare la stessa cosa in una nuova lingua, ma utilizzando il programma della risposta della seconda persona (ad es. puts("Hello World!")) Come punto di partenza. La quarta risposta sarà in relazione alla terza risposta e così via.

Continuerà fino a quando tutti rimarranno bloccati perché non esiste una nuova lingua in cui è possibile eseguire il programma dell'ultima risposta cambiando solo 7 caratteri. L'obiettivo comune è vedere per quanto tempo possiamo continuare così, quindi cerca di non apportare modifiche al personaggio oscure o ingiustificate (questo non è un requisito comunque).

formattazione

Per favore formatta il tuo post in questo modo:

#Answer N - [language]

    [code]

[notes, explanation, observations, whatever]

Dove N è il numero di risposta (aumenta in modo incrementale, N = 1, 2, 3, ...).

Non devi dire quali caratteri esatti sono stati cambiati. Assicurati solo che la distanza di Levenshtein sia compresa tra 0 e 7.

Regole

La cosa chiave da capire su questa sfida è che solo una persona può rispondere alla volta e ogni risposta dipende da quella precedente .

Non dovrebbero mai esserci due risposte con lo stesso N. Se due persone rispondono contemporaneamente per qualche N, colui che ha risposto in seguito (anche se è una differenza di pochi secondi) dovrebbe eliminare gentilmente la propria risposta.

Inoltre...

  • Un utente può inviare una sola risposta ogni 8 ore. vale a dire ciascuna delle risposte deve essere di almeno 8 ore di distanza. (Questo per impedire agli utenti di osservare costantemente la domanda e di rispondere il più possibile.)
  • Un utente non può inviare due risposte di seguito. (ad es. da quando ho inviato la risposta 1 non posso fare la risposta 2, ma potrei fare 3.)
  • Ogni risposta deve essere in un linguaggio di programmazione diverso.
    • Versioni diverse della stessa lingua contano come la stessa lingua.
    • Le lingue contano come distinte se tradizionalmente sono chiamate con due nomi diversi. (Potrebbero esserci alcune ambiguità qui, ma non lasciare che ciò rovini il concorso.)
  • È possibile utilizzare solo schede, nuove righe e ASCII stampabile . (Newline conta come un personaggio.)
  • L'output dovrebbe essere solo Hello World!e nessun altro carattere (una nuova riga iniziale / finale non è un problema).
  • Se la tua lingua non ha stdout usa tutto ciò che è comunemente usato per produrre rapidamente testo (ad esempio console.logo alertin JavaScript).

Assicurati che la tua risposta sia valida. Non vogliamo renderci conto che c'è una pausa nella catena di cinque risposte. Le risposte non valide devono essere riparate rapidamente o eliminate prima che ci siano ulteriori risposte.

Non modificare le risposte se non assolutamente necessario.

punteggio

Una volta che le cose si sono sistemate, l'utente che invia la maggior parte delle risposte (valide) vince. I legami vanno all'utente con i voti più alti cumulativi.

Classifica: (obsoleto)

(l'utente deve avere almeno 2 risposte valide)

11 risposte

7 risposte

6 risposte

5 risposte

4 risposte

3 risposte

2 risposte

Lingue utilizzate finora:

  1. Pitone
  2. CJam
  3. PHP
  4. Pyth
  5. Perl
  6. Befunge 98
  7. bash
  8. Nimrod
  9. Rubino
  10. GNU dc
  11. Golfscript
  12. matematica
  13. R
  14. Lua
  15. saggio
  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. Tipo BF esteso III
  34. zsh
  35. trattino
  36. Clojure
  37. NetLogo
  38. Groovy
  39. CoffeeScript
  40. Clipper
  41. DI BASE
  42. FALSE
  43. pesce (conchiglia)
  44. GNU Octave
  45. TCL
  46. E
  47. newLISP
  48. blesità
  49. SMT-LIBv2
  50. Racchetta
  51. Batsh
  52. tcsh
  53. AppleScript
  54. Topo
  55. folletto
  56. F #
  57. Falco
  58. burlesco
  59. HTML
  60. SGML
  61. M4
  62. PAROTITE
  63. TeX
  64. Via
  65. salmone
  66. Turing
  67. avanti Cristo
  68. betterave
  69. schema
  70. Emacs Lisp
  71. Logo
  72. AutoLISP
  73. ///
  74. Rebol
  75. acero
  76. FreeBASIC
  77. Vimscript
  78. ksh
  79. Hack
  80. mIRC
  81. Lotto
  82. Rendere
  83. riduione di prezzo
  84. sh
  85. GDB
  86. csh
  87. HQ9 + -
  88. poscritto
  89. Matlab
  90. oz
  91. CASIO BASIC
  92. VBScript
  93. QBasic
  94. in lavorazione
  95. C
  96. Ruggine 0.13
  97. Dardo
  98. Kaffeine
  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. Scoiattolo
  118. Pegno
  119. Scala
  120. Rebmu
  121. fischio
  122. PARI / GP
  123. Rosso
  124. veloce
  125. BeanShell
  126. vala
  127. Luccio
  128. Suneido
  129. AWK
  130. Neko
  131. AngelScript
  132. Gosu
  133. V
  134. ALAGUF
  135. BogusForth
  136. Tuono Fiammeggiante
  137. Cache ObjectScript
  138. gufo
  139. Cardinale
  140. parser
  141. Sorriso
  142. Gattino
  143. TwoDucks
  144. Asintoto
  145. GATTO
  146. IDL
  147. minuscolo
  148. WTFZOMFG
  149. Io
  150. MuPAD
  151. Giava
  152. Onice
  153. JBoss
  154. S +
  155. Hexish
  156. Yash
  157. Improbabile
  158. svegliare
  159. monello
  160. shell integrata busybox
  161. gammaplex
  162. KTurtle
  163. AGOL 68
  164. Alice
  165. SML / NJ
  166. OCaml
  167. cduce
  168. Sotto carico
  169. Simplex v.0.6
  170. Minkolang 0.9
  171. Fexl 7.0.3
  172. Jolf
  173. Vitsy
  174. Y
  175. Retina
  176. Nome in codice Dragon
  177. Sul serio
  178. Reng v.3.3
  179. Fuzzy Octo Guacamole

(Sentiti libero di modificare questi elenchi se sono errati o non aggiornati.)

Questa domanda funziona meglio quando si ordina per più vecchio .

NOTA: questa è una domanda di prova per un nuovo tipo di sfida che ho in mente in cui ogni risposta dipende dall'ultima e aumenta in difficoltà. Vieni a discuterne con noi nella chatroom per questa domanda o in meta .


61
"Ordina per meno recenti" è utile qui.
xnor


5
@Mew HQ9 + stampa il messaggio sbagliato. Ma questo ... esolangs.org/wiki/Huby
Sp3000,

17
Forse questo può essere interessante: migl.io/projects/hw . Questo elenco contiene automaticamente le risposte e mostra la loro durata .
Michael M.,

6
@gerrit Causa Potrei davvero usare altre 350 notifiche di risposta ...
Hobby di Calvin il

Risposte:


29

Risposta 85 - GDB (GNU Debugger)

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

Penso che questo possa anche essere qualificato come linguaggio di programmazione. Ha anche ife whilecomandi .

echo è un altro comando integrato in GDB.

Per eseguire questo codice:

gdb --batch -x file

Distanza: 7 dalla risposta 84 .


Per favore, rivedi la tua risposta, l'85 era una risposta non valida (non avevo notato che la lingua era stata usata prima) e l'ho cancellata.
Nit

Qualche link a GDB?
Ottimizzatore

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

È come eseguire un progetto Java in Eclipse anziché in Netbeans
Optimizer,

3
Questa risposta va bene GDB ha un linguaggio di comando che viene utilizzato per eseguire comandi di debug specifici. Questo viene fatto eseguendo GDB in modalità batch e specificando il file di comando utilizzando --batch -x <file>. Questo è un linguaggio legittimo. Vedi qui: sourceware.org/gdb/onlinedocs/gdb/Mode-Options.html ( -batch flag)

50

Risposta 1 - Python

print("Hello World!")

Ci devono essere dozzine di lingue in cui questo potrebbe trasformarsi.


113
Perché questo è stato votato, ma non è la domanda? Ti garantisco che la domanda era più difficile da scrivere;)
Calvin's Hobbies,

91
Perché il tuo commento è stato votato più della tua risposta?
Tomsmeding

23
@Calvin'sHobbies Rispondi ai voti valgono di più, non dovresti lamentarti :-)
Angew,

30
@tom Perché il tuo commento è stato votato più di questa risposta?
nicael,

24
^ Tutti rimpiangono che non ci siano rappresentanti assegnati per i voti dei commenti!
Ottimizzatore

46

Risposta 59 - HTML

Che cosa? Nessun HTML ??

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

Distanza dalla risposta 58 : 6

Voodoo Magic? Nah. Ecco come funziona:

Puoi avere qualsiasi tag arbitrario in HTML, quindi la prima parte <echo o[.]c;cat<<;#&&alert" ">è un echotag, che ora diventa un tag vuoto senza CSS applicato per impostazione predefinita dal browser.

La o[.]c;cat<<;#&&alert" "parte è in realtà due proprietà impostate su quel tag separate da spazio. Quindi la prima proprietà ha la chiave o[.]c;cat<<;#&&alert"e la seconda chiave è "ed entrambi i valori sono vuoti.

La seconda parte è solo testo semplice Hello World!che è il contenuto del testo del echotag.

Successivamente, HTML cerca di trovare il echotag di chiusura , ma trova invece un vshtag di chiusura . Quindi ignora il vshtag di chiusura (ovvero </vsh) e chiude automaticamente il echotag.


2
@MAKZ HTML è piuttosto gratuito e sciolto. Puoi avere tag di chiusura di apertura senza eguali e cosa no. XHTML è piuttosto severo. w3schools è un buon punto di partenza.
Ottimizzatore

3
Puoi avere qualsiasi tag in HTML, quindi echo è un tag normale. o[.]c;cat<<;#&&alert"è una proprietà su quel tag e l'ultima "è un'altra proprietà su quel tag. Puoi vederlo anche usando lo strumento sviluppatore di Inspector.
Ottimizzatore

3
Abbastanza intelligente. Non ci avrei mai pensato.
RubberDuck,

15
Penso che sia quello che succede quando leggi documenti standard alle 3 del mattino mentre sei su peyote.
David Conrad,

5
@Optimizer Lettura obbligatoria per le persone che raccomandano w3schools. ;)
Martin Ender il

39

Risposta 95 - C

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

Distanza 7 dalla risposta 94


39
Finalmente sanguinante.
Nit

@Optimizer Non ho riscontrato alcun tipo di errore di runtime usando gcc 4.7.2 sul mio computer.
archaephyrryx,

1
@Emil Solo auto-rientro; Chiamata di OP su cosa fare al riguardo (se il problema
persiste

1
@ user23013 Perché il programma non specifica intcome tipo di ritorno per maine non restituisce effettivamente un codice di uscita; pertanto, il codice di ritorno è un comportamento tecnicamente indefinito, quindi il 13.
Qix

1
Alcune delle risposte precedenti (a partire da 85 GDB) hanno fatto un lavoro extra per prepararsi a C.
kernigh,

29

Risposta 22 - LOLCODE

VISIBLE "Hello World!"

Distanza: 6


A me sembra la distanza 6 - elimina p, ut-> VI, tr-> IB, n->E
isaacg,

1
Grazie. Penso di aver copiato un codice diverso durante il calcolo della distanza.
Spuntino il

28

Risposta 151 - Java

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

Distanza dalla risposta 150 : 7

Provalo qui

(Grazie a Christopher Creutzig per essere stato un tale sport :))


3
Ora per la risposta C #!
Rodolphito,




21

Risposta 83 - Markdown

Che cosa ?? Nessun markdown? : P

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

Provalo qui

Distanza dalla risposta 82 : 7

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

Magia voodoo ?? Nah !! Ecco come funziona:

  • [text](link) crea un collegamento.

Quindi la prima parte del codice è

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

Che crea un collegamento di testo vuoto con la posizione

#[.]c;cat;#&&alert"  "
     @echo
  • La parte successiva Hello World!viene stampata così com'è

  • Quindi [;]:;#bye;dnl</vsh>crea un collegamento di riferimento per il ;quale può essere utilizzato in qualsiasi punto del markdown.

Ex:

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

1
Sta diventando discutibile se si tratta di un linguaggio di programmazione . (Lo stesso vale per HTML.)
Martin Ender,

1
Bene, se HTML è un linguaggio, lo è anche Markdown. È la stessa relazione tra JS e Closure. Inoltre, data questa sfida (1 lingua per risposta), queste regole dovrebbero essere leggermente allentate.
Ottimizzatore

1
Come ho detto, non penso che l'HTML sia un linguaggio di programmazione neanche secondo i nostri standard. Ma ai fini di questa particolare sfida probabilmente va bene allentare quelle regole (ma idealmente gli hobby di Calvin dovrebbero affermarlo).
Martin Ender,

4
Possiamo avere questa discussione altrove piuttosto che sulla mia risposta? :)
Ottimizzatore,

2
Ancora piuttosto impressionante
Fabinout il


18

Risposta 12 - Mathematica

#[puts];
"Hello World!"

Distanza di 7. Tentativo di eliminare un po 'di quel casino.



15

Risposta 19 - VHDL

report "Hello World!";

Distanza: 6


1
wow :) ........ testardo eh?
MAKZ,

3
Haha, stavo aspettando una domanda sul codice del golf che mi permetta di usare un HDL: p

15

Risposta 6 - Befunge 98

<@,kb"Hello World!"

Distanza di 5 dalla risposta precedente . Inizialmente c'era un bug in cui knon c'era; So che era lì quando ho scritto questo programma, però. Immagino che non sia entrato in questo post.


Avrei dovuto gonfiarlo, ma vabbè.
Giustino,


6
@Quincunx Non riesco a immaginare che potremo mai System.out.println
alzarci

4
@ Sp3000 Possiamo innanzitutto scrivere il programma Java in un commento. Quindi trasforma tutto il resto in un commento.
jimmy23013,

4
Avevo preso in considerazione la possibilità di consentire più risposte per risposta in modo che potesse espandersi come un albero. Allora voi ragazzi potreste andare sulla vostra piccola tangente Java. Sarebbe troppo confuso però ...
Hobby di Calvin il

14

Risposta 23 - APL

 "Hello World!"

Nota che c'è uno spazio iniziale.
Distanza: 7


2
il Wdevono essere capitalizzati per la stampa "Ciao Mondo!".

13

Risposta 3 - PHP

<?="Hello World!"?>

Questa risposta è una distanza 5 dalla seconda risposta .


Si noti che la stringa "Hello World!"testualmente, che è ovviamente la distanza 0 dalla risposta 2, è un programma PHP valido che emette la stringa richiesta e che l'istruzione di stampa esplicita non è necessaria.
hijarian,

@hijarian: Questo è vero solo per la shell PHP, che la rende non valida per questa sfida.
Dennis,

1
@Dennis Se scrivi uno script helloworld.phpe inserisci i 12 simboli Hello World!lì dentro e poi esegui questo script php helloworld.php, verrai Hello World!stampato su stdout come PHP tratta tutto l' <?php ?>output dell'istruzione di elaborazione come testo non elaborato.
hijarian,

Mi sono reso conto che dovrai rimuovere le virgolette (il che rende Levenstein distance 2) per essere pienamente conforme.
hijarian,

4
@Petah Quindi? Questo non è un codice golf. Non dovremmo renderlo il più breve o semplice possibile per continuare.
PurkkaKoodari,

13

Risposta 28 - J

]trace=:('Hello World!')

Distanza = 5 dalla risposta 27


1
]+ =+ :+ '+ '= 5, giusto?

3
Sicuro. Non è stato veloce ... Questo tipo di domanda aggiunge sicuramente una sensazione in tempo reale alle sfide del codice: P.
jpjacobs,

una delle notazioni più strane per una lingua con un nome così semplice ...
CoDEmanX

E J avrebbe potuto essere la risposta 2, eliminando la stampa e sostituendo il doppio con virgolette singole, finendo con ('Hello World!').
bcsb1001,

13

Risposta 33 - Extended BF Type III

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

Distanza 7 dalla risposta 32

Bene, non ho trovato un interprete per quell'estensione ma il codice sembra adattarsi alle specifiche della lingua.

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
Solo per questo sai, la risposta sopra non è valida in quanto ha una distanza di 8. Ciò dovrebbe essere risolvibile rimuovendo alcuni spazi, quindi potresti voler riparare la tua dopo l'altro.
Scimonster,

1
È corretto. Mie scuse.
RubberDuck,

1
Anche la mia risposta è fissa.
Michael M.,

1
Ne ho uno in ordine per questo, non vedo l'ora del timer di 8 ore.
Nit



12

Risposta 14 - Lua

#[put
print("Hello World!")

Distanza = 7


8
E siamo tornati all'inizio, buon lavoro.
Nit

ciao @Timmy, mi dispiace ma ho dovuto cambiare la mia risposta da stampa a gatto.
Mark Gabriel,

12

Risposta 21 - Haskell

putStrLn "Hello World!"

Distanza: 7


4
Sono l'unico che pensa che la versione di Haskell printsia dafter di LOLCODE?
Pharap,

5
@Pharap: printviene chiamata la versione di Haskell print, e fa qualcosa di piuttosto semplice: stampare un valore, di qualsiasi tipo¹ - ma in notazione Haskell valida! Quindi print 5cede 5come output e print "Hello World!"cede "Hello World!"; ma la sfida richiesta Hello World, senza virgolette (che non sarebbe valida Haskell).
cessò di girare in senso antiorario il

3
@Pharap ¹ In realtà non funziona con nessun tipo, solo con Showtipi in grado.
cessò di girare in senso antiorario il

1
@leftaroundabout Bene, suum cuique pulchrum est suppongo.
Pharap,

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

12

Risposta 26 - TI-BASIC (NSpire)

Disp "Hello World!"

Distanza: 5 dalla risposta 25

(Testato su un calcolatore TI-NSpire)


2
Vedo che hai un calcolatore NSpire; che dovrebbe essere annotato nel titolo in quanto TI-83/84 / + / SE non ha lettere minuscole.
Timtech,

2
@Timtech In realtà hanno lettere minuscole. Se hai MirageOS o un altro sistema operativo personalizzato, puoi abilitarli. Ecco uno screenshot di un programma che ho scritto qualche tempo fa che utilizza lettere minuscole.
wchargin,


11

Risposta 7 - Bash

echo Hello World!

Questa è una distanza di 7 dalla sesta risposta .


1
Una distanza zero da qui sarebbe Batch .... Quick @RandomUserViewingThisComment, vai a postarlo!
Giustino,

@Quincunx Distanza 1 con il @personaggio.
jimmy23013,

@ user23013 Buon punto; Conosco molto male Batch .... Ma funzionerebbe da riga di comando.
Giustino,

@Quincunx Oppure verrà stampato \nX:\Your\Working\Directory>echo Hello World!\nHello World!in uno script. O dovrei dire \r\nper \n.
jimmy23013,

@ user23013 Oh, ha senso.
Giustino,

11

Risposta 29 - MS Windows Powershell

#]trace=:(
'Hello World!'

Distanza = 3 dalla risposta 28


3
In realtà, mi è piaciuto come è apparso lo smiley dai capelli punk ... = :(
agtoever,

2
Da questo punto in poi, le risposte accumulano spazzatura (di solito commentata). La risposta 85 (GDB) ha aggiunto un "principale", e le risposte alla fine hanno raggiunto C e poi Java.
kernigh,

11

Risposta 42 - FALSO

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

La distanza di Levenshtein dalla # 41 è 7. Testata con questa implementazione online di FALSE. Ho usato degli slot rimanenti di modifica-distanza per rimuovere alcune cruft ...


Avrei dovuto farmi un po 'di pulizia di quell'innesto, ma ora non posso. Spezzerei la catena.
TecBrat,

3
voto casuale per essere la risposta 42 - la risposta è falsa: P
CoDEmanX

11

Risposta 150 - MuPAD

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

Distanza 6 dalla risposta 149 .

EDIT : aggiunta "h" per spostare la catena in avanti.


Ah ... Se avessi potuto aggiungere un hdopo String[], la risposta successiva sarebbe stata in Java;)
Ottimizzatore

2
Nell'interesse di ottenere una lunga catena, immagino che mi limiterò a barare e modificarlo in questo momento. ;-)
Christopher Creutzig,

10

Risposta 30 - K

/#]trac
"Hello World!"

Distanza: 7 dalla risposta 29

Penso che funzioni, un interprete è qui (Kona) . /inizia un commento di una riga in K. Ho ripulito un po 'il #]trace=:(casino.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.