Dans cette question, je vous ai demandé de deviner une quine d'anagramme en fonction de sa sortie. Cependant, il semble que nous n'ayons pas encore de question demandant de jouer au golf une quine d'anagramme. Votre tâche consistera donc à créer la plus courte anagramme possible.
Qu'est-ce qu'une anagramme quine?
Une anagramme quine est un programme non vide qui imprime une anagramme de son code source, autre que sa source d'origine.
Voici un exemple de séquence d'anagrammes en Python 2:
print`'`print`*2'*2`
Vous ne devez pas lire votre propre source pour ce défi.
code-golf
quine
permutations
Assistant de blé
la source
la source
Réponses:
Pyth , 2 octets
Les sorties
Essayez-le en ligne!
la source
()
s'agit d'un quine beaucoup plus court que le bien connujN*2]"jN*2]
?V , 4 octets
Les sorties:
Essayez-le en ligne!
la source
i2
?2 -> do the next thing twice
i -> insert the following
> <> ,
987 octetsGolfé 1 octet grâce à @WheatWizard en l'utilisant
!
et en l'incrémentant pour obtenir"
Golfé 1 octet grâce à @ ConorO'Brien en utilisant
#
au lieu de<!
Essayez-le en ligne!
Sorties
"#o>-1:
.Explication
la source
":1+>o<!
est un peu plus court.":1->o#
Brainfuck, 158 octets
Essayez-le en ligne!
Ce n'est peut-être pas la version la plus courte, mais au moins cela fonctionne.
Fait amusant , le code de sortie peut en fait être exécuté (et il se termine).
Sortie
Explication
la source
Python 3, 32 octets
Impressions
p"r"i"n"t"2(")*p"r"i"n"t"2(")*\n
, sortie triée:\n""""""""""""(())**22iinnpprrtt
la source
Ruby , 8 octets
Essayez-le en ligne!
Cela imprime
Explication
Cela fonctionne de manière similaire à la réponse python de la question. Il va faire la chaîne
p*2p*2
puis en utilisant Rubyp
affichera la représentation de la chaîne.la source
p
place deputs
?! Tellement de temps perdu ...p x
est équivalent àputs x.inspect
JavaScript (ES6),
4032 octetsPas besoin de jouer avec Function.toString non plus. En prime, le code à l'intérieur de la chaîne semble presque légal. Modifier: 8 octets enregistrés en utilisant
+
au lieu derepeat(2)
.la source
*2
place de.repeat(2)
, cela ne fonctionne-t-il pas?*
pour les chaînesKlein , 7 + 6 = 13 octets
Voici une réponse basée sur le réponse> <> .
Essayez-le en ligne!
Cette sorties
la source
Japt ,
109 octetsJ'ai trouvé un meilleur moyen :-)
Sorties
"Q+2çQ+2ç
.Testez-le en ligne!Explication
Pourrait aussi être
Qi2ç"Qi2ç
, qui imprimeQi2çQi2ç"
. Celui-ci est plus proche du quine Japt standard:Mais je ne crois pas qu'il existe un moyen facile de caler le guillemet au milieu de la chaîne pour un quine de 9 octets.
la source
Q+"+Q² " ²
Rubis, 20 octets
Cette sorties
Profitant de la
%q(...)
syntaxe de chaîne de Ruby , qui prend en charge les parenthèses imbriquées.la source
Rétine , 8 octets
Essayez-le en ligne!
Impressions
Les deux contiennent un
_
, deuxn
, deux$
et trois sauts de ligne.Notez qu'un saut de ligne suivi de presque n'importe quel autre caractère est une solution triviale, mais il est douteux qu'il soit valide, car le deuxième caractère ne s'encode que lui-même et le saut de ligne n'encode vraiment aucun des deux caractères de sortie.
Explication
Remplacez l'entrée vide par un
_
.Correspond à une chaîne vide, qui se produit avant ou après le
_
et insérez un saut de ligne ($n
), unn
et un$
. Depuis que nous avons inséré cela pour la première fois_
, cela ajoute deux fois chacun de ces caractères, de sorte que len
et prend en$
compte le$n
, et nous obtenons deux des trois sauts de ligne dont nous avons besoin dans la sortie. Le troisième saut de ligne est imprimé car Retina imprime un saut de ligne de fin par défaut.Nous pourrions également utiliser
n$n$
à cette étape, qui imprimerait alors:la source
Python Repl, 4 octets
Ceci est ma première solution Code Golf, donc j'espère qu'elle répond aux règles. Dans l'interpréteur interactif Python 2 ou 3:
La sortie est une anagramme de l'entrée.
Un autre:
En Python 2:
En Python 3:
Mise à jour 2017-06-15: Encore une autre:
la source
Haskell ,
3839 octetsEssayez-le en ligne! Sortie:
Edit: +1 octet parce que j'avais déjà oublié le retour à la ligne implicite de
print
.Alternative: (Même nombre d'octets mais ne contient pas de chouette ASCII)
Essayez-le en ligne!
Sortie:
la source
Groovy,
2420 octets-4 grâce à CalculatorFeline, l'espace blanc n'était pas nécessaire après tout!
Sortie:
Explication:
Fermeture anonyme qui, lorsqu'elle est appelée, revient
{""*""2""}
deux fois (concaténée).la source
*2
remplissage comme entre guillemets:{"""{""*""2""}"""*2}
05AB1E , 10 octets
Essayez-le en ligne!
Sortie:
Explication:
la source
CJam , 6 octets
Essayez-le en ligne!
Impressions
Explication
la source
Bash, 36 octets
Cette sorties
(et crée le fichier
f
comme effet secondaire, mais cela est autorisé par méta .)Le programme et la sortie ont une nouvelle ligne de fin.
Processus de réflexion: je me suis dit que la façon la plus simple de produire une chaîne deux fois, en plus de l'attribuer à une variable, était de faire
La chaîne doit être citée car elle contiendra des espaces et des
<
caractères, donc j'ai euqui fonctionne presque, sauf qu'il ne produit pas les guillemets. Heureusement, Bash prend en charge la concaténation littérale des chaînes en les plaçant simplement les unes à côté des autres, donc l'ajout
"''"
à l'héritage et l'insertion""
à l'intérieur de la partie de guillemet simple donne cette solution.la source
PHP , 44 octets
Essayez-le en ligne!
la source
CJam , 8 octets
Essayez-le en ligne!
Explication
Similaire à l'exemple Python de la question
La sortie est
"2*`2*`"
.la source
Befunge, 11 octets
Tirages:
Explication:
la source
"
. Quelle est la restriction à cela exactement?"
soit considéré comme la lecture de sa propre source, c'est juste une chaîne littérale.g
cependant lit assez ouvertement sa propre source.":1+>:#,_@!
fonctionne également mais ce n'est pas plus court.' 2+"8k,@
pour 9 octetsQBIC , 8 octets
Je viens de découvrir comment faire une quine appropriée dans QBIC. Pour en faire une anagramme, il suffit de changer les caractères du littéral de chaîne. Il y a 24 anagrammes possibles de cette façon.
la source
Befunge-98 , 8 octets
Essayez-le en ligne!
la source
Ohm , 14 octets
Essayez-le en ligne!
Sortie:
Explication
la source
JavaScript (ES6), 15 octets
Les sorties:
Fragment:
Afficher l'extrait de code
la source
Fission 2 ,
9 86 octetsEssayez-le en ligne!
Explication
Un atome est créé à
R
, qui se déplace vers la droite. Cet atome rencontre alors un"
, qui démarre le mode d'impression. En mode d'impression, tous les caractères (jusqu'à la correspondance"
) sont imprimés. Cela signifie qu'il imprime'!+OR
dans ce cas. Ensuite, tout ce qui reste est l'impression"
, ce qui est fait par les caractères restants.'!
définit la masse de l'atome sur le code de caractère de!
et l'+
incrémente sur le code de caractère de"
. Ensuite, le code de caractère est sorti parO
et l'atome est détruit, mettant fin au programme.(En fait, ce n'est qu'une rotation du quine le plus court)
la source
R"'!+O
, non testé).Mathematica, 2 octets
Sortie:
Un nombre commençant par un point décimal tel que
.123
est interprété comme0.123
,.0
est donc interprété comme0.0
. Étant donné que la partie du nombre après la virgule décimale est zéro, Mathematica ne l'imprime pas.la source
.
code lui-même, mais je ne pense pas que le0
fait? Un 0 au-delà de la virgule décimale ne peut pas être vu comme codant un zéro de tête avant la virgule décimale, ce dernier étant un effet secondaire de l'impression d'un flottant. Donc, selon les anciennes règles de quine, il n'y a pas de problème ici. (Je ne sais pas encore si les nouvelles règles sont entrées en vigueur.)JavaScript (encore un autre), 11 octets
Appelé avec
f()
, sortiesAfficher l'extrait de code
la source
Python 3, 31 octets
la source
Stax ,
84 octetsExécutez et déboguez en ligne!
Un port direct de cette réponse .
Ancienne version, 8 octets
Exécutez et déboguez en ligne!
Version alternative avec une astuce assez bon marché qui peut être appliquée aux quines appropriées dans presque toutes les langues.
Exécutez et déboguez en ligne!
Car
"34bL"34bL
c'est un quine approprié à Stax.Encore une autre version, utilisant uniquement des littéraux de chaîne à caractère unique.
Exécutez et déboguez en ligne!
Explication
la source
05AB1E , 13 octets
Les sorties:
Essayez-le en ligne!
la source