Limerick Hello World [chiuso]


28

Un programma in rima che scrivi
Tentativo di vincere la lotta
Per vincere la gara e votare Devi
calcolare "Hello World"
Quindi stamparlo molto educato

Vincerà la poesia più popolare.

I requisiti sono:

  • La poesia dovrebbe essere di 5 righe con rime AABBA
  • Può stampare quello che vuoi, ma l'output dovrebbe contenere "ciao mondo" (maiuscole / minuscole non contano, le virgolette non sono incluse nell'output)
  • I simboli vengono letti ad alta voce. Ad esempio, si legge la quarta riga sopra: Deve calcolare la citazione ciao citazione mondiale
  • Pubblica sotto il tuo codice, in un'altra anteprima del codice, la versione "read-ad alta voce" del tuo codice per chiarire ambiguità su simboli speciali.

Sono escluse le poesie:

  • incluso codice morto o caratteri che potrebbero essere rimossi in sicurezza senza modificare le rime o la funzionalità
  • Usare i commenti come modo per rimare (tranne se c'è una buona ragione per farlo)
  • usando lo stesso simbolo della fine della frase per rima.

In caso di pareggio, vinceranno i programmi che producono una poesia. Se c'è ancora un pareggio, vinceranno i programmi più brevi.

Le nuove righe non contano. spazi, tabulazioni e newline non vengono letti ad alta voce. Ad esempio, "Ciao, mondo!" verrebbe letto ad alta voce "virgolette doppie virgola mondo punto esclamativo virgolette doppie".


L' intero programma deve essere di cinque righe? Una risposta non può essere semplicemente lo snippet dei comandi richiesti? Escludendo le dichiarazioni di classe / funzione e tutto il resto?
mikhailcazi,

Sì, l'intero programma deve essere di cinque righe. Prova a diffondere le tue definizioni e include lungo le linee. La maggior parte dei PL ha un modo per includere più frasi su una sola riga con il punto e virgola o simili.
Mikaël Mayer,

Vedo che molte delle risposte stanno provando a produrre limerick, perché menzioni quella parola nel tuo titolo, ma non nei tuoi requisiti.
TRiG

È vero. Voglio solo che il programma sia un limerick.
Mikaël Mayer,

Sto votando per chiudere questo come troppo ampio perché non c'è modo di determinare obiettivamente se una risposta è valida.
Wheat Wizard

Risposte:


86

Lo spazio bianco

Un programma in rima che ho scritto  	   
	
     		  	 	
	
questa poesia di spazi bianchi e gonfia		 		  
	
     		 		  
	
perché le newline non contano  		 				
	
     	     
	
nonostante l'importo   	 	 			
	
     		 				
	
quindi merita il tuo più sincero voto 			  	 
	
     		 		  
	
     		  	  
	
  


Wikipedia: Whitespace (linguaggio di programmazione)
Interprete online per testare la risposta

Produzione:

Ciao mondo

3
Questo mi ricorda in qualche modo i Beatles Come Together .
user12205

7
Certamente è "su di me"
Sideshow Bob

6
Escluso: usare i commenti come modo per rimare
Non che Charles

2
Bene, ho dimenticato che altri caratteri erano commenti negli spazi bianchi. Non credo che manterrò questa regola perché altrimenti ciò rovinerebbe questo vincitore.
Mikaël Mayer

3
@ MikaëlMayer Penso che dovresti mantenere la regola. Sospetto che molti di questi voti provengano principalmente da persone che stanno solo scoprendo il fascino di Whitespace. Personalmente, sono più interessato a vedere le risposte nello spirito della vera sfida del codice in rima.
Jason C

60

HTML

<html>
<body><span
    class="poem"
    > Hello World! I'm a goat
</span></body></html><!-- Pecan -->

Ho dovuto diventare un po 'liberale con la pronuncia dell'ultima riga. Spero che non infranga le regole. Inoltre, non è valido al 100% per W3C, ma funziona nella maggior parte dei browser.

<!--
less than aich tee em el greater than,
less than body not equal to span,
class equals quote poem end quote,
greater than Hello World Bang I'm a goat
close span close body close root comment pecan
-->

4
+1 per ri-pronunce intelligenti ... + Commento "Bang, I'm a goat" ...
WallyWest

5
+1 per la lettura ><di "non uguale"
John Dvorak

3
Un novizio, una poesia che ha scritto -a / Sperando di ottenere solo un voto-a / E ora in questa gara / È al secondo posto! / Con altrettanti rappresentanti quanti anni su StackOverflow-ta.
Cobaltduck,

26

Javascript

So che questo non rientra nelle regole, ma non ho potuto resistere

var girl, attractive = true;    // There once was a beautiful girl
var boy; girl = ' World';       // And a boy who thought she was his world
boy = 'Hello' + girl;           // When the boy said hello
if (boy != attractive)          // She said 'my goodness no!'
    alert(window['boy']);       // And the boy through the window she hurled.

4
Creativo e geniale.
Damon Swayn,

3
Non c'era bisogno di ridefinire la ragazza sulla seconda riga, ma mi piace ancora.
howderek,

23

Pitone

a = [
'hello world']
print ''.\
join(a##
)

o,

a equals open square bracket
quote hello world quote close square bracket
print quote quote dot backslash
join paren a hash hash
and finally close unmatched bracket

Mi iscrivo volontariamente a regole aggiuntive, perché penso (1) che i limerick dovrebbero avere un buon metro e (2) che i migliori abbiano una sorpresa nell'ultima riga.

(Con il finale interpretato in un inglese semplice, immagino che tu possa capire da solo quale tipo di parentesi è ineguagliata. Per quanto riguarda il requisito di nessun codice morto, nulla all'interno può essere rimosso senza cambiare almeno una di rima, ritmo o output ).


Si può rimuovere un hash senza cambiare funzionalità o rima. Si fa cambiare il ritmo come si stato, ma le condizioni della domanda sono abbastanza chiari qui, credo.
Keba

1
Poiché la natura della poesia è di piegare le regole, posso conviverci. Detto questo, non mi è chiaro che lo strumento non faccia comunque parte del concetto di rima dell'OP.
Spettacolo Bob

3
Meh. La "parentesi" in rima con se stessa tre volte è solo un pigro rallentamento.
MikeTheLiar,

Sì, mi dispiace per quello. Ma è un simbolo diverso per ogni rima, come richiesto dall'OP.
Spettacolo Bob

14

Haskell

Prendendo alcune libertà con la pronuncia di alcuni simboli, ad esempio la costruzione di Tuple (,,) e l'applicazione di funzioni ($).

main = something that we wrote
     where something x y z = bloat
           bloat = flip ($) m putStrLn
           (that,we,wrote) = undefined
           m = "hello world"

La lettura dovrebbe essere:

main is something that we wrote
where something x y z is bloat
bloat is flip apply m putStrLine
Tuple that we wrote is undefined
misquote hello world quote.

12

JavaScript

if (!!1) // and
  alert('&#10084; &#10084; the world') // and
Burn = $.cache
return 1 > his_parts.the_sum

Se tra parentesi si seguono segni di esclamazione

e avvisa il mondo tra parentesi dopo i cuori delle entità

taglia, taglia e brucia

è uguale a contanti, contanti, rendimento

uno è maggiore della somma delle sue parti


3
Non credo di conoscere nessuno che pronunci "$" come "contanti", anche se ammetto di non aver scritto JavaScript.
Carl Witthoft,

1
+1 Mi piace la trascrizione non letterale, e "Entity Hearts" è piuttosto divertente, nonostante le libertà di interruzione di riga.
Jason C

8

DI BASE

Più specificamente, Chipmunk Basic . Le regole della sintassi sono state allungate quasi fino al punto di rottura, quindi potrebbe essere impossibile eseguirlo in altri dialetti senza modifiche.

Fonte:

read hi$, u$, q
print hi$ " world how are you
  print "Or as they say
  print u$ q "day
data Hello, How R U, 2

Versione "Leggi ad alta voce":

read hi string comma u string comma q
print hi string quote world how are you
  print quote Or as they say
  print u string q quote day
data Hello comma How R U comma 2

Gli appunti:

  • Non ci sono numeri di riga nel codice sorgente, ma verrà comunque caricato ed eseguito senza problemi (vedi sotto).
  • Il $sigillo viene letto come "stringa" nel contesto dei programmi BASIC (vedere, ad esempio, questa pagina di Wikipedia ).

Ed ecco la prova che funziona davvero:

schermata del programma in esecuzione su Mac OS X.


Come hai fatto questa gif?
Kartik,

@Kartik Ho usato un'app chiamata IShowU
ossifrage squeamish

6

bash

Poiché la risposta è costretta a contenere solo la frase "Hello World", la soluzione più semplice dovrebbe essere:

echo A rhyming program you write
echo Attempting to win the fight
echo For winning the contest and vote
echo It must compute "Hello World"
echo Then print it very polite

8
Legale nelle regole, ma questa risposta non è divertente alle feste. meta.codegolf.stackexchange.com/a/1063/3363
Jonathan Van Matre

1
@JonathanVanMatre Questo è un segno che il problema è nella domanda. Qualcosa di diverso dalla semplice stampa diretta dell'output sarebbe superfluo. Inoltre la prima regola "esclusa" inibisce qualcosa di più creativo, anche i nomi delle variabili con più di un carattere e codice identificativo, è un codice golf valutato come concorso di popolarità, ottenendo il peggio dei due.
Victor Stafusa

4
@Timtech: è voto e preventivo.
Keba

2
Hai considerato di migliorare la domanda? / Potrebbe aver fatto un'impressione migliore. / Anche se il danno è fatto / Non sarebbe più divertente / Realizzare una vera confezione di codici da limerick? :)
Jonathan Van Matre

1
@Victor, "i caratteri che potrebbero essere rimossi in modo sicuro" sembrano implicare che non è possibile utilizzare nomi di variabili multi-carattere tranne nei casi in cui fanno parte di una rima. Questo è problematico.
Jonathan Van Matre,

6

Giava

public static void main(String[] boat
){ int i = 1.0f
  ;if(i<2
  )System.out.println
("Hello world");} //hello world wrote


public static void main paren String arr boat
paren brace int i is one-point-oh float
sem-col if paren i is less than two
paren system dot out dot print line new //for some reason it's println, not printnl
paren quote hello world quote paren sem-col brace slash-slash hello world wrote

Nota che i commenti non sono realmente opzionali in Java


La b"barca" deve essere rimossa ("avena" è un nome variabile valido e si adatta)
pppery

6

Rubino

comma = ""<<44
print "Hello" or
more = ""<<32
print comma if true
puts("World!") unless print more

In diretta: https://ideone.com/sirBBc

Pronunciato come segue (con sillabe accentate in maiuscolo)

comma Equals quote-QUOTE cons four-FOUR
print QUOTE hello END quote OR
more equals QUOTE quote cons three-TWO  # ok, that was squished
print COMma if TRUE
puts QUOTE world QUOTE UNless print MORE

Il me ein entrambi i casi moredeve essere rimosso ( oreè una parola valida anche in quella posizione)
pppery

Hm, non credo di poter legalmente fare rima orcon oro ore.
istocratico

Questo non sarebbe l'unico esempio di un limerick con parole duplicate
pepery

4

Haskell

main = print . repeat
  $ head $ lines . init
     $ "Hello \
       \World!" #
         Just where (#) = const . id

Principale equivale alla stampa stop ripetizione
Dollar Head Dollar Line full stop i'nnit?
Citazione del dollaro ciao back slash
Back slashworld bang quote hash
Proprio dove l'hash tra parentesi è uguale costante, basta!

Questo descrive, si spera, abbastanza bene l'effettivo comportamento del programma.


2

TeX

Mi scuso in anticipo, perché questo codice non conta come un limite se pronunci i nomi di ciascuno dei singoli simboli (specialmente se tratti ogni lettera a se stessa come un token, che forse dovresti). L'ho scritto in questo modo per produrre l'output più bello possibile, che a sua volta non è un poema.

Puoi tranquillamente trasformarlo in una risposta che rispetta le regole sbarazzandoti di \itogni carattere non alfabetico, non di spazi bianchi ad eccezione del finale \bye(leggi ad alta voce come ciao backslash ) e forse il primo !(leggi ad alta voce come botto ).

A \TeX\ program I think would comply,

And I'll tell you the reason for why:

``Hello world!'' tells the setter:

{\it ``Print each subsequent letter!''}

And we terminate with \bye.

Dovresti rimuovere virgole e simboli alla fine di ogni verso per farli rimare correttamente. Oppure mettili in fila dopo.
Mikaël Mayer,

@ MikaëlMayer: vedi l'osservazione nel mio secondo paragrafo.
Niel de Beaudrap,

2

Brainf * ck

Ok, rimproverami ora per le numerose violazioni delle regole. Ma non ho potuto fare a meno di farlo.

++++++++[>+++++++++<-
]>.---.$#
+++++++..+
++.++++++++
.--------.+++.------.--------.

E l'output (prima violazione di molti: nessuno spazio):

HELLOWORLD

Provalo qui: http://www.iamcal.com/misc/bf_debug/

La lettura di esso:

Eight plus left more nine plus less dash
Right more dot three dash dot cash hash
Sevén plus dot dot plus
Plus plus dot eight plus
Dot eight dash dot three plus dot six dash dot eight dash.
  • Si noti che il punto finale nel programma viene inserito come punto alla fine del limerick :) [seconda violazione; questo è economico]. Inoltre, i $e #sono ignorati dall'interprete (ero molto orgoglioso di me stesso per questa linea).

  • L'accento Sevénè quello di mostrare lo stress: seh-VEN

  • Ciò viola la regola dell'uso di simboli diversi. Ma onestamente ho un set di simboli molto limitato e nessuno spazio da aggiungere in altri personaggi (ignorati).

  • Ho usato tutti i tappi perché quelli sono più veloci per accedere in ASCII. Purtroppo non avevo spazio per uno spazio.

Infine: sì, so che l'ultima riga è terribile. Qualche suggerimento per migliorarlo? Non sono sicuro che potresti comprimere più questo programma; forse memorizzando lettere ripetute nelle loro posizioni?


Ho appena realizzato che mentre questo avrebbe allungato il codice, srotolare il ciclo iniziale in 72 +avrebbe risparmiato un po 'di spazio nel limerick. Ma manterrò la mia risposta così com'è.
Baum

2

C #

Ho preso alcune lievi libertà con le regole in quanto le varianti di C veramente fonetiche implicherebbero un uso eccessivo del "punto e virgola" che, come tutti sappiamo, non è una rima particolarmente buona per nulla.

{
     string unfurled = "Hello World!";
     Console.WriteLine(unfurled);
}

parentesi graffa aperta, stringa chiamata non spiegata

creato per leggere "ciao mondo"

riga di scrittura della console

la stringa che abbiamo definito

un tutore finale, uno che è arricciato


Puoi sempre mettere un punto e virgola all'inizio di una nuova riga, no?
Mikaël Mayer,

È vero, Mikael, ma rende il codice molto disordinato!
BrummiePete,

1
Tra disordine e rima, qui il punto riguarda la rima. Non preoccuparti, questo codice non è sottoposto a revisione paritaria.
Mikaël Mayer,

1

Giava

class Hello {public static void main
(String[] args)
{yellow = System; yellow
.out.print("Hello
world");} }

class Hello brace public static void main
paren string bracket bracket args paren
 brace yellow equals system sem-col yellow
 dot out dot print paren quote hello
world quote paren sem-col brace and brace again

1
Questo non si compila. Come viene yellowdichiarato?
ζ--

1

partita

@echo off >dull
set /p "=Hello "<nul
set w=World
echo %w%! || Furled
del dull || cull

at echo off to sull
set slash p quote uguale Hello quote from nul
set w equal World
echo percent w percent bang pipe pipe Furled
del dull pipe pipe cull


Riesci a trovare un'altra rima opaca / opaca?
Mikaël Mayer

@ MikaëlMayer è un codice più inutile, ma sì.
Unlemeat

1

CSS

title>me
,body lets go party
only a stylesheet,html
:after { content: 'hello world'; font-family:Rockwell
; color: #adad20

Uscite:

titolo più grande di me

corpo virgola lascia andare festa

solo una virgola in stile HTML

due punti dopo parentesi quadre virgolette ciao mondo citazione punto e virgola famiglia di caratteri due punti Rockwell

punto e virgola punto e virgola colore hashtag un papà venti

Testato su Firefox e Chrome


1
#include <stdio.h> //
void main (void){
printf("Hello, World");
//just for rhyme I say stolon
} /**/

l'hash include meno dello stdio punto h maggiore della doppia barra dopo uno spazio

void paren principale a sinistra void parent a destra parentesi graffa sinistra

printf citazione paren sinistra Ciao virgola citazione mondiale paren destra semi virgola

doppia barra solo per rima dico stolon

parentesi graffa destra e doppio asterisco tra le barre all'ultimo posto


Bello per le prime due rime, ma usi due volte lo stesso simbolo per rima (punto e virgola), il che non è permesso.
Mikaël Mayer,

Debug, ma credo che sia apparso un altro bug.
Nayuta Ito,

0

Windows Batch

Le parole pronunciate vengono inoltre salvate nel file batch e ignorate con l'ultima riga del codice effettivo.

@echo off >nul
set hi=Hello World
rem Now print the string,
echo !hi!
goto :) to skip the words

at echo off, greater than nul,
set H I equals sign, Hello World,
rem Now print the string,
echo pling, H I, pling
goto smile, to skip the words

:)

Modifica: è necessario abilitare l'espansione ritardata affinché lo script funzioni. Usalo cmd /v:oned eseguilo da lì.


1
nul, worlde wordsnon fare rima. Il modello deve essere AABBA. Anche la virgola dopo stringdovrebbe essere pronunciata.
Unlemeat

0

stampa "i tasti delle lettere sulla mia tastiera"
stampa "sono sufficienti per dire Hello World
print" quando scrivo al buio "
stampa" seduto qui nel parco "
stampa " sentendomi orribilmente annoiato "


Nota le regole: simboli come quelli 'letti ad alta voce e contano come parte dello schema in rima. Benvenuti in PPCG!
Jonathan Van Matre,

Quindi tecnicamente funziona. Non dice che non Apuò essere B.
CompuChip

0

Python (3)

print('''Nose
No punctuation hear close
Hello World
Hurled and swerled
Goodbye now''')

Stampa apri preventivo preventivo preventivo naso, nessuna punteggiatura ascolta da vicino, Hello World, scagliato e gorgogliato, addio ora cita preventivo preventivo Chiudi.


Benvenuti nel sito e bel primo post!
caird coinheringaahing
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.