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

81voto

Miles Points 12977

Perl :

print + "Hello, World\n";"n\dlroW ,olleH" + tnirp

65voto

ephemient Points 87003

Haskell. En fait, c'est assez facile :)

main = putStr hw
hw = const "Hello, World" ab
a = ba ; niam = main ; ab = a
ba "dlroW ,olleH" tsnoc = wh
wh rtStup = niam

Ou, dans un commentaire de Reid Barton :

main = putStr `id` "Hello, World"
niam = main
"dlroW ,olleH" `di` rtStup = niam

Une autre variation :

main = const putStr main "Hello, World" where erehw "dlroW ,olleH" niam rtStup tsnoc = niam

53voto

David Z Points 49476

Python 2.5 :

'''dlroW ,olleH' tnirp
'''
print 'Hello, World'''

51voto

Johannes Weiß Points 19013

Cela devrait fonctionner sur la plupart des shells (sh, bash et (grâce à Paulius Maruška) même sous Windows ;-) ) :

echo Hello World || dlroW olleH ohce

preuve (la clé est l'évaluation paresseuse si echo Hello World réussit, ce qui fait) :

$ echo Hello World || dlroW olleH ohce
Hello World

Un autre dans sh/bash :

   alias dlroW=true saila=true
echo Hello World;dlroW olleH ohce
   eurt=alias eurt=World saila

EDIT : Mon ancienne (en bash, aussi) n'était pas correcte :

cat <(echo Hello World >&2;2&> dlroW olleH ohce)< tac

n'est pas un palindrome car les parenthèses ne sont pas dans le bon sens et il a besoin d'un fichier appelé tac dans le répertoire actuel.

30voto

IfLoop Points 59461

Voici ma réponse en TCL :

proc unknown args {puts "Hello World!"}
}"!dlroW olleH" stup{ sgra nwonknu corp

Il faut aimer une langue où les règles de citation sont plus des directives que des règles. Le fait même que la ligne 2 n'a aucun sens fait que la ligne 1 accueille l'utilisateur.

En fait, je pense que le proc unknown Le mécanisme en tcl est vraiment utile dans certains cas et il me manque dans d'autres langages.

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