Vous devez créer un polyglotte qui génère son code source dans une langue et son code source à l' envers dans une autre. Contrairement aux règles normales, vous êtes autorisé à lire le fichier actuel ou à utiliser une fonction intégrée pour obtenir le code source de votre soumission et l'inverser dans une langue. Votre code source ne peut pas être un palindrome.
Par exemple, si votre code source l'est abcxyz
, il doit sortir abcxyz
dans une langue et zyxcba
dans une autre. Si votre code l'est abcxyzyxbca
, il n'est pas valide car il s'agit d'un palindrome.
Bonne chance!
Réponses:
PHP et GolfScript, 2 octets
c'est-à-dire une nouvelle ligne et le chiffre 1.
Il s'agit d'un quine inverse dans GolfScript , contribué sur ce site par Justin . PHP n'a pas déclenché qu'il s'agit d'un langage de programmation, il imprime donc son entrée.
la source
Python 2 / Python 3, 71 octets
N'utilise pas de commandes internes quine.
Merci aux ovs de m'avoir réveillé en général.
la source
lambda _='lambda _=%r:(_%%_)[::int(1-(1/2)*4)]':(_%_)[::int(1-(1/2)*4)]
pour 71 octetsLot / bash + tac, 39 octets
Sorties vers l'avant en lot. Explication: Batch voit la première ligne comme une étiquette et l'ignore, tandis que la deuxième ligne copie simplement le fichier source dans STDOUT. (Notez que vous devez appeler le fichier, y compris l'extension, ou passer
%0
à%~f0
.)bash
Voit quatre commandes::
ne fait rien (pareiltrue
)tac -r -s '.\|'$'\n' $0
-r
passetac
en mode regex-s
spécifie une expression régulière'.\|'$'\n'
est le regex, composé de.
n'importe quel caractère sauf la nouvelle ligne\|
ou$'\n'
une nouvelle lignetac
le fichier est divisé en caractères plutôt qu'en lignes.exit
arrête le script, ignore la quatrième commande@type %0
(ignoré)la source
:;rev $0|tac;exit
. En outre, l'en-tête devrait plutôt indiquer Batch / sh + util-linux + coreutils .$'\n'
est un bashisme, n'inverserev $0|tac
pas correctement les retours à la ligne, et est-ce vraiment important que celatac
vienne dans un package?$'\n'
n'existe pas dans le remplacement que j'ai suggéré etrev $0|tac
fonctionne pour moi. Et je pense qu'il vaut mieux spécifier les packages au lieu des utilitaires individuels, car parfois une confusion peut survenir (par exemple, quel packagetac
?).PHP et Retina, 2 octets
Identique à la réponse PHP & GolfScript de Gille.
PHP lit simplement le code et le renvoie directement, Retina remplacera les correspondances d'une chaîne vide dans l'entrée et la remplacera par 1, et la sortira avec une nouvelle ligne.
la source
JS (ES5), JS (ES6), 94 octets
N'utilise aucune fonction intégrée de quine. Utilise simplement le fait que les fonctions JS se transforment en leur code. Peut probablement être joué au golf plus.
la source
Si vous autorisez la lecture du code source, ce n'est pas vraiment une quine.
PHP & sh + util-linux, 6 octets
Je suis sûr que les langues de golf habituelles peuvent le faire en 2 octets.
la source