125 votes

Défi de programmation : pouvez-vous coder un programme "hello world" sous forme de palindrome ?

Le puzzle consiste donc à écrire un programme hello world dans le langage de votre choix, où le fichier source du programme, en tant que chaîne de caractères, doit être une palindrome .

Pour être clair, la sortie doit être exactement "Hello, World".


Editar:

Avec les commentaires, cela semble trivial (même si je n'y ai pas pensé moi-même [soupir]). cobalt ).

Así que nouvelle règle : pas de commentaires.


Editar:

Je me sens un peu mal d'éditer la question de quelqu'un d'autre pour dire cela, mais cela éliminera beaucoup de non-palindromes qui continuent à apparaître, et je suis fatigué de voir la même erreur simple encore et encore.

Ce qui suit est PAS un palindrome :

()()

Les éléments suivants IS un palindrome :

())(

Les crochets, les parenthèses et tout ce qui doit correspondre sont un obstacle majeur au palindrome, certes, mais cela ne signifie pas que vous pouvez les ignorer et poster des réponses non palindromes.


Langues représentées jusqu'à présent :

C, C++, Bash, elisp, C#, Perl, sh, Windows shell, Java, Common Lisp, Awk, Ruby, Brainfuck, Funge, Python, Machine Language, HQ9+, Assembly, TCL, J, php, Haskell, io, TeX, APL, Javascript, mIRC script, Basic, Orc, Fortran, Unlambda, Pseudo-code, Befunge, CFML, Lua, INTERCAL, VBScript, HTML, sed, PostScript, GolfScript, REBOL, SQL

4voto

Markus Jarderot Points 33893

Lua

x=print"Hello, world"=="dlrow ,olleH"tnirp=x

4voto

KirarinSnow Points 1022

PostScript, sans commentaires, 41 caractères :

(Hello, World)= quit tiuq =)dlroW ,olleH(

L'interpréteur arrête l'analyse après quit ... le reste est syntaxiquement mal formé. Voici une version qui va jusqu'à la fin (135 caractères) :

[/Hello,!World/ pop 12 string/ pop cvs/ pop
dup/ pop 6 32 put/ pop = pop /tup 23 6 pop /pud
pop /svc pop /gnirts 21 pop /dlroW!,olleH/[

Le fait que les chaînes de caractères soient délimitées par des caractères non identiques (parens) rend la tâche un peu plus difficile. Ironiquement, on peut contourner ce problème en utilisant pop aux bons endroits ; pop est lui-même, par coïncidence (et de manière utile), un palindrome. ☆^_^☆

pop est plutôt un sauveur de vies, en fait. Je ne sais pas comment cela serait possible si le nom de l'opérateur n'était pas un palindrome. :o

Voici une version un peu plus longue sans pop (180 caractères) :

[/dlroW!,olleH/x/tup/x/pud/x/svc/x/gnirts/Hello,!World
12 string cvs dup 6 32 put =/nigeb>>begin/= tup 23 6 pud svc gnirts 21
dlroW!,olleH/string/x/cvs/x/dup/x/put/x/Hello,!World/[

3voto

Mark T Points 1276

Écrire "dans la langue de votre choix" laisse un grand vide. Mon langage de prédilection pour ce problème est un langage maison composé d'une seule commande. Voici donc le code qui appelle cette commande :

HelloolleH

Bien sûr, ce que fait cette commande est d'imprimer Hello World.

3voto

Gumbo Points 279147

Utilisation des commentaires :

/**/print"Hello, World!";/*/"!dlroW ,olleH"tnirp/**/

3voto

jtxx000 Points 46

Io :

forward   :=  method
"Hello, world" print
tnirp "dlrow, olleH"
dohtem  =:   drawrof

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X