Quine Relay!
Un quine relais d'ordre est une série de programmes P 1 … P n dans des langages distincts tels que chaque programme P i sort P i + 1 et P n sort P 1 .
Par exemple, un relais à 2 quines peut être vu ici:
Rubis → Perl 6:
$><<"print ("
p (DATA.read*2).chars.map(&:ord)
$><<".map: &chr).join"
__END__
$><<"print ("
p (DATA.read*2).chars.map(&:ord)
$><<".map: &chr).join"
__END__
génère ce programme Perl 6 :
print ([36, 62, 60, 60, 34, 112, 114, 105, 110, 116, 32, 40, 34, 10, 112, 32, 40, 68, 65, 84, 65, 46, 114, 101, 97, 100, 42, 50, 41, 46, 99, 104, 97, 114, 115, 46, 109, 97, 112, 40, 38, 58, 111, 114, 100, 41, 10, 36, 62, 60, 60, 34, 46, 109, 97, 112, 58, 32, 38, 99, 104, 114, 41, 46, 106, 111, 105, 110, 34, 10, 10, 95, 95, 69, 78, 68, 95, 95, 10, 36, 62, 60, 60, 34, 112, 114, 105, 110, 116, 32, 40, 34, 10, 112, 32, 40, 68, 65, 84, 65, 46, 114, 101, 97, 100, 42, 50, 41, 46, 99, 104, 97, 114, 115, 46, 109, 97, 112, 40, 38, 58, 111, 114, 100, 41, 10, 36, 62, 60, 60, 34, 46, 109, 97, 112, 58, 32, 38, 99, 104, 114, 41, 46, 106, 111, 105, 110, 34, 10, 10, 95, 95, 69, 78, 68, 95, 95, 10]
.map: &chr).join
qui à son tour génère le programme Ruby d'origine.
Le défi
La première réponse sera un relais de quine d' ordre : une quine normale. Il peut être dans n'importe quelle langue.
La réponse suivante choisira une langue différente et créera un relais quine d' ordre en utilisant ces deux langues.
Etc. La ème réponse créera un relais de quine d' ordre k en utilisant les k - 1 langues précédentes et une nouvelle langue différente.
Gagnant
Si, après 2 semaines, aucune autre réponse n'a été ajoutée, le gagnant est la personne qui a répondu avec le relais de quine de premier ordre.
Plus de règles
- Personne ne peut répondre deux fois de suite.
- Personne ne peut répondre dans l'heure suivant son dernier message.
- Les langues qui diffèrent selon la version sont considérées comme distinctes. Ainsi, Python 2 et Python 3 peuvent tous deux faire partie de la chaîne.
- Les langues qui diffèrent par le compilateur ou l'interpréteur ne sont pas considérées comme distinctes. Ainsi, Python 3 (Cython) et Python 3 sont considérés comme interchangeables mais pas distincts.
- Chaque réponse peut ordonner les langues de n'importe quelle manière. Si la troisième réponse a un ordre Ruby → Perl 6 → JavaScript, vous n'êtes pas limité à ajouter une langue à la fin. Si vous ajoutiez Java au mixage, vous pouvez écrire JavaScript → Ruby → Java → Perl 6 si vous le souhaitez.
Format des réponses
n. Langue 1 → Langue 2 →… → Langue n
Langue 1
language 1 code
Langue 2
language 2 code
Langue 3
language 3 code
…
Langue n
language n code
N'hésitez pas à ajouter des explications n'importe où dans vos réponses.
la source
Réponses:
10. Javascript → Foo → brainfuck → Wumpus → Gol> <> → RAD →> <> → Python 2 → Brain-Flak → 4
Edit: Pour la réponse suivante, j'ai vu comment le Python génère le Brain-Flak un peu plus ici , mais je ne peux pas être dérangé pour mettre à jour les liens.
Ajout de Gol> <>. C'est juste un peu
rpH
après le code Wumpus. J'ai également quelque peu optimisé le brainfuck et le code Brain-Flak. Vérification!JavaScript (Node.js)
Essayez-le en ligne!
Foo
Essayez-le en ligne!
enculé
Essayez-le en ligne!
Wumpus
Essayez-le en ligne!
Gol> <>
Essayez-le en ligne!
RAD
Essayez-le en ligne!
> <>
Essayez-le en ligne!
Python 2
Essayez-le en ligne!
Brain-Flak
Essayez-le en ligne!
4
Essayez-le en ligne!
la source
3. JavaScript → Python 2 → Foo
Javascript
Quine JS classique. Ceci est un programme complet qui sort sur console:
Essayez-le en ligne!
Python 2
Le code Python imprime essentiellement le code JS avec des guillemets:
Essayez-le en ligne!
Foo
Le code Foo est du code JS avec des guillemets:
Essayez-le en ligne!
la source
String.fromCharCode(39,34)
économiser sur les invocations répétées?String.fromCharCode(39)+String.fromCharCode(34)
pour économiser un peu ;-)1. Foo
Foo
Un simple Foo quine:
Essayez-le en ligne!
la source
2. Python 2 → Foo
j'ai utilisé le quine python de base, puis ajouté les citations
python:
Essayez-le en ligne!
foo:
Essayez-le en ligne!
la source
5.> <> → JavaScript → brainfuck → Python 2 → Foo
Réponse obligatoire de brainfuck.
> <>
Essayez-le en ligne!
Javascript
Essayez-le en ligne!
enculé
Essayez-le en ligne!
Python 2
Essayez-le en ligne!
Foo
Essayez-le en ligne!
la source
9. JavaScript → Foo → Brainfuck → Wumpus → RAD →> <> → Python 2 → Brain-Flak → 4
C'était amusant.
Aucune idée pourquoi j'ai décidé que 4 devraient être ajoutés, aucune idée pourquoi j'ai refait le tout (bien sûr, copier-coller des trucs autour), mais je l'ai fait: D
Javascript
Essayez-le en ligne!
Étant donné que la sortie est trop grande pour que TIO revienne, voici un testeur qui fait défiler toutes les langues.
Foo
Essayez-le en ligne!
enculé
Essayez-le en ligne!
Wumpus
Essayez-le en ligne!
RAD
Essayez-le en ligne!
> <>
><>
sort une nouvelle ligne au milieu avec'a'
pour que la fonction python soit séparée du reste du code.Essayez-le en ligne!
Python 2
Essayez-le en ligne!
Python génère le brain-flak quelque peu optimisé, réutilisant l'élément précédent sur la pile, car sinon le code brain-flak serait d'environ un mégaoctet.
Brain-Flak
Essayez-le en ligne!
4
Essayez-le en ligne!
la source
4.> <> → JavaScript → Python 2 → Foo
> <>
Essayez-le en ligne!
J'ai ajouté le littéral de chaîne d'emballage classique, en l'ajoutant
'rpp>o<
au début et en le modifiant également dans la partie centrale.JavaScript (Node.js)
Essayez-le en ligne!
J'ai raccourci
String.fromCharCode
partie selon les commentaires sur la dernière réponse. Je sais que ce défi n'est pas vraiment du golf de code, mais il me fait me sentir mieux.Python 2
Essayez-le en ligne!
Ajout du
\'
pour le début du quine> <>.Foo
Essayez-le en ligne!
la source
6.> <> → JavaScript → brainfuck → Python 2 → Brain-Flak → Foo
Réponse Brain-Flak obligatoire.
> <>
Essayez-le en ligne!
JavaScript (Node.js)
Essayez-le en ligne!
enculé
Essayez-le en ligne!
Python 2
Essayez-le en ligne!
Brain-Flak
Essayez-le en ligne!
J'ai exclu le code car il fait 41568 octets et atteint la limite de caractères de la réponse. Le code est similaire au code brainfuck et est au format:
Foo
Essayez-le en ligne!
la source
7.> <> → JavaScript → RAD → brainfuck → Python 2 → Brain-Flak → Foo
> <>
Essayez-le en ligne!
Javascript
Essayez-le en ligne!
RAD
Essayez-le en ligne!
enculé
Essayez-le en ligne!
Python 2
Essayez-le en ligne!
Brain-Flak
Essayez-le en ligne!
Foo
Essayez-le en ligne!
la source
8.> <> → Wumpus → JavaScript → RAD → brainfuck → Python 2 → Brain-Flak → Foo
Ajout dans un autre langage 2D, Wumpus.
> <>
Essayez-le en ligne!
Cela imprime maintenant un supplément
"
avant le code Wumpus.Wumpus
Essayez-le en ligne!
Similaire au
><>
quine, cela enveloppe un littéral de chaîne autour du code et imprime uniquement la section javascriptJavaScript (Node.js)
Essayez-le en ligne!
RAD
Essayez-le en ligne!
J'exclus de très longues sections de code de la chaîne, afin de ne pas remplir la réponse.
enculé
Essayez-le en ligne!
Python 2
Essayez-le en ligne!
Brain-Flak
Essayez-le en ligne!
Foo
Essayez-le en ligne!
C'était en fait la partie la plus ennuyeuse du code. Foo ne prend en charge que les littéraux de chaîne de 254 pour une raison quelconque, j'ai donc dû jouer un peu au golf et séparer le Javascript du code 2D pour le garder court. La prochaine personne devra probablement diviser le Javascript.
la source