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

267voto

David Z Points 49476

En une langue qui ne doit pas être nommée :

++++++++++>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>
++++++++++++++++++++++++++++++++>
++++++++++++++++++++++++++++++++++++++++++++>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>
<.<.<.<.<.<.<.<.<.<.<.<.<.<
>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>++++++++++++++++++++++++++++++++++++++++++++
>++++++++++++++++++++++++++++++++
>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>++++++++++

194voto

ephemient Points 87003

Je suis parti de Petits programmes et j'ai écrit mon propre assemblage. Bien sûr, il est peut-être possible de le réduire davantage, mais je ne sais pas quels autres champs d'en-tête ELF je peux subvertir pour les utiliser comme code tout en restant portable.

$ wc -c hellolleh
245 hellolleh
$ xxd hellolleh
0000000: 7f45 4c46 0101 0100 0000 0000 0000 0000  .ELF............
0000010: 0200 0300 0100 0000 5000 9331 2c00 0000  ........P..1,...
0000020: 0000 0000 0000 0000 3400 2000 0100 0000  ........4. .....
0000030: 0000 0000 0000 9331 c040 cd80 f800 0000  .......1.@......
0000040: 7401 0000 0700 0000 0010 0000 f7d8 ebe6  t...............
0000050: 686f 726c 6468 6f2c 2057 6848 656c 6cb8  horldho, WhHell.
0000060: 0400 0000 bb01 0000 0089 e1ba 0c00 0000  ................
0000070: cd80 bb00 0000 00e9 baff ffff bae9 0000  ................
0000080: 0000 bb80 cd00 0000 0cba e189 0000 0001  ................
0000090: bb00 0000 04b8 6c6c 6548 6857 202c 6f68  ......lleHhW ,oh
00000a0: 646c 726f 68e6 ebd8 f700 0010 0000 0000  dlroh...........
00000b0: 0700 0001 7400 0000 f880 cd40 c031 9300  ....t......@.1..
00000c0: 0000 0000 0000 0000 0100 2000 3400 0000  .......... .4...
00000d0: 0000 0000 0000 0000 2c31 9300 5000 0000  ........,1..P...
00000e0: 0100 0300 0200 0000 0000 0000 0000 0101  ................
00000f0: 0146 4c45 7f                             .FLE.
$ file hellolleh
hellolleh: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, corrupted section header size
$ ./hellolleh
Hello, World

(Vous pouvez utiliser xxd -r pour recharger ce hexdump dans un fichier binaire).

115voto

cobbal Points 37900

Tricher par commentaires dans un shell script de votre choix (bash pour moi)

echo 'hello world' # 'dlrow olleh' ohce

Editar:

Et en utilisant le préprocesseur en c, vous pouvez utiliser

#define foo fidne#
#include <stdio.h>

int main() {
    printf("hello world\n");
}

#if 0
0 fi#
}
;)"n\dlrow olleh"(ftnirp    
{ )(niam tni

>h.oidts< edilcni#
#endif oof enifed#

Edit : mise à jour du code C pour supprimer tous les avertissements dans gcc (toujours un dans Comeau cependant)
mise à jour du code C pour être palindrome (merci Can Berk Güder)

Editar:

Et la solution simple, élégante, d'elisp

(message "%s" "hello world")'("dlrow olleh" "s%" egassem)

Bien que ce ne soit pas un palindrome strict, car j'ai dû inverser les parenthèses.

100voto

Pseudocode :

Output "Hello, World".
Ignore the two next lines.
.senil txen owt eht erongI
."dlroW ,olleH" tuptuO

98voto

Mark Stock Points 1293

Dans le Langage machine Moniteur sur un Apple //e, tapez N300G003N pour exécuter ce programme :

300: A2 0C BD 0B 03 20 ED FD CA D0 F7 60 E4 EC F2 EF D7 A0 AC EF EC EC E5 C8 8C 5E CE CE FE CA 0A 7D FE 2F CE 4E 06 7F 0D AC DF DE 02 30 B0 DB C0 2A :003

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