Écrivez un programme qui affichera son propre code source lors de son exécution, et rien d'autre. Semble facile, non?
Le hic, c'est que lorsque le code source est inversé, votre programme doit produire "Bonjour, World!" exactement, sans les guillemets.
C'est le code-golf, donc le nombre d'octets le plus bas l'emporte.
Edit : Votre quine doit être un quine approprié.
code-golf
quine
source-layout
hello-world
ericw31415
la source
la source
Réponses:
Y, 19 octets
U
capture une chaîne avecU
au début jusqu'à ce que la suivanteU
soit rencontrée, dans ce cas, le code source.p
imprime l'article etx
constitue un lien de terminaison. Lorsqu'elle est inversée, cela ressemble à:Cela capture la chaîne et l'imprime avec
p
, terminant à nouveau le programme avecx
.Essayez-le ici!
la source
U
pousseU
implicitement? ಠ_ಠU
commande est la "commande de capture de maillon de chaîne". Il n'est pas fait pour quining, mais cela ne m'empêchera pas de l'utiliser pour quining. : PU...
juste pour le codeU...
.p
bit faisait la sortie, ce qui faisait partie de l'encodage.p
etx
ne compterait pas. Par exemple, le quine SMBF le plus court est toujours considéré comme un quine de triche, même si le code doit l'imprimer. Cela pourrait valoir la peine de demander des éclaircissements à Martin.JavaScript (ES6),
4238 octetsRenversé
Explication
Lorsqu'elle est inversée, elle devient une fonction anonyme qui renvoie la chaîne
Hello, World!
.L'expression régulière
/\//g
devient un commentaire lorsqu'elle est inversée, ce qui permet>=_=f
de mettre en commentaire le syntaxiquement invalide dans le code inversé.la source
=_=
.JavaScript (ES6), 71 octets
Comment ça fonctionne:
La ligne 1 définit la fonction
trela
qui, lors de l'exécution, génère le code source du programme. La ligne 2 est une chaîne non affectée, ne fait rien. Appel des lignes 3 et 4trela
abus de la syntaxe de la chaîne de modèle.Renversé:
Comment ça fonctionne:
La ligne 1 est une chaîne non affectée, ne fait rien. Les lignes 2 et 3 abusent de la syntaxe de chaîne de modèle pour imprimer
Hello, World!
. La ligne 4 est un commentaire.la source
``
inutile?trela
fonction (qui imprime le quine) dans la version avant``
c'était les arguments. Cool.trela
par ici ...> _>GolfScript, 33 octets
En avant
Essayez-le en ligne!
En arrière
Essayez-le en ligne!
la source
GolfScript,
2928 octetsIl a une nouvelle ligne de fin. Essayez-le ici.
Renversé:
Essayez-le ici.
la source
RETOUR , 94 octets
Renversé:
Try it here.
Sorties vers STDOUT. Jusqu'à ce que je trouve un meilleur cadre quine, cela devra faire pour l'instant.
Explication
Il contient la chaîne de quine. À l'inverse, cela est poussé vers la pile mais n'est pas sorti.
Cela pousse un caractère de citation dans la pile et génère le résultat deux fois jusqu'à ce qu'il ne reste plus rien à produire. En sens inverse, cela imprimera les charcodes déjà sur la pile.
Celui-ci fait apparaître l'élément de pile supérieur (en sens inverse, cela ferait apparaître un caractère d'espace) et pousse une série de codes de caractères dans la pile (en sens inverse, ces codes de caractères seront ensuite imprimés par la série de
,
).la source
Fission 2, 42 octets
Adaptation sans vergogne d'une excellente quine par @ MartinBüttner dans cette réponse
Essayez-le en ligne
Et inversé
Essayez-le en ligne
Dans la version quine, l'atome commence à
R
droite. Le"
mode d'impression démarre qui passe au suivant"
(lui-même). Cela imprime tout sauf le"
.'!+
définissez l'atome sur char"
.O
l'imprime et détruit l'atome qui termine le programme.La version inversée recommence au début
R
et pour chaque caractère dans leHello, World
jeu, l'atome et l'imprime!
sans détruire l'atome. Pour le caractère final,!
l'empreinteO
détruit l'atome.la source
Javascript ES6, 55 octets
Assez simple, vraiment.
la source
Python 2, 131 octets
Vers l'avant:
Sens inverse:
La première moitié est une quine d'une ligne, suivie d'un
#
pour former un commentaire séparant la première moitié de la seconde moitié plus simple.la source
_='_=%r;print _%%_#"!dlroW ,olleH"tnirp';print _%_#"!dlroW ,olleH"tnirp
C, 108 octets
la source
Python 2, 70 octets
la source