Depuis Quine central :
Écrivez un quine qui prend en entrée le nom d'une langue et génère la même chose implémentée dans la langue d'entrée.
L'article source contient quelque chose à partir duquel vous pouvez travailler, mais comme le dit l'auteur, c'est beaucoup plus difficile. De toute évidence, il vous suffit de prendre en charge un ensemble limité de langues. Le choix vous appartient cependant, ainsi que la langue de base.
En tant que défi de code , votre score sera le nombre de langues prises en charge par votre programme; plus c'est mieux.
code-challenge
quine
marcog
la source
la source
Réponses:
Rubis
Python
Les deux versions acceptent l'entrée sur stdin (
ruby
oupython
actuellement) et génèrent la sortie sur stdout dans les deux langues.la source
Turtlèd , Python 2 et Python 3, 3 langues, uniquement en compétition pour la prime
tous les oneliners suivis par la nouvelle ligne
Turtlèd
Essayez-le en ligne!
Python 2
Essayez-le en ligne!
Python 3
Essayez-le en ligne!
Explication:
Pour chaque langue, j'ai pris des quines déjà écrites et les ai modifiées un peu.
Turtlèd d'abord:
Turtlèd comprend la structure standard de quine. cependant, si l'entrée se termine par un 2 ou un 3, elle ajoute la fin du code python, soit 2 ou 3, elle les inclut séparément, à la sortie de quine, puis revient au début et ajoute
x='
. Sinon, le code source est laissé et affiché comme un quine normalNotez également qu'il faut entrer deux fois
!!.
, car la source contient une nouvelle ligne qui alimente pour entrer une ligne vide.cependant, le long du chemin vers le début de la chaîne, afin d'éviter le fait que la chaîne ne puisse pas y être
'
contenue, elle change tout'
dans la source principale le long du chemin versy
. si c'est le cas, la citation qui s'échappe pourrait être ennuyeuse, si possiblecela repose sur une astuce; Je n'aurais pas pu écrire
(''y)
,(pseudocode:if cell is ', write y)
car alors cela aurait été impossible à distinguer d'un '. donc j'utilise le y de l'entrée "Python"! ce fut un vrai moment eureka pour moi.puis, il y a les choses en python quinelike.
Comment fonctionne la chose quinelike en python:
cela fonctionne comme un quine normal, sauf qu'il inclut également la variable x
s'il a une entrée Python 3, il fonctionne comme un quine normal et utilise le formatage% pour inclure également la source de Turtlèd.
s'il a une entrée Python 2, il remplace
input
dans la chaîne parraw_input
, et fait exactement la même chose.si l'entrée est Turtlèd, elle remplace les
y
s dans la source Turtlèd et l'imprime.Les deux programmes python fonctionnent de la même manière et prennent les entrées de la même manière
la source