Desde la central de Quine :
Escriba un quine que tome como entrada el nombre de un idioma y genere lo mismo implementado en el idioma de entrada.
El artículo fuente tiene algo de lo que puede trabajar, pero como dice el autor, esto es mucho más difícil. Obviamente, solo necesita admitir un conjunto limitado de idiomas. Sin embargo, la elección es suya, así como el idioma base.
Como desafío de código , su puntaje será la cantidad de idiomas que admite su programa; más alto es mejor.
code-challenge
quine
marcog
fuente
fuente
Respuestas:
Rubí
Pitón
Ambas versiones toman entrada en stdin (
ruby
opython
actualmente) y generan la salida a stdout en cualquier idioma.fuente
Turtlèd , Python 2 y Python 3, 3 idiomas, solo compiten por recompensas
todas las líneas seguidas por newline
Turtlèd
Pruébalo en línea!
Python 2
Pruébalo en línea!
Python 3
Pruébalo en línea!
Explicación:
Para cada idioma, tomé quines ya escritos y los modifiqué un poco.
Turtlèd primero:
Turtlèd incluye la estructura estándar de quine. sin embargo, si la entrada finaliza con un 2 o un 3, agrega el final del código de Python, ya sea 2 o 3, los incluye a ambos por separado, a la salida de quine, y luego vuelve al inicio y agrega
x='
. De lo contrario, el código fuente se deja y se muestra como una línea regular.También tenga en cuenta que requiere entrada dos veces
!!.
, porque la fuente contiene una nueva línea que se alimenta para ingresar una línea vacía.sin embargo, en el camino hacia el inicio de la cadena, para evitar el hecho de que la cadena no puede contener
'
, cambia todo'
en la fuente principal en el camino ay
. si lo hiciera, el escape de la cita podría ser molesto, si es posibleesto se basa en un truco; No podría haber escrito
(''y)
,(pseudocode:if cell is ', write y)
porque entonces eso habría sido indistinguible de un '. entonces uso la y de la entrada "Python"! Este fue un verdadero momento eureka para mí.luego, están las cosas como quinceañeras de pitón.
Cómo funciona la cosa de quinceañeras de pitón:
funciona como una quine regular, excepto que también incluye la variable x
si tiene entrada Python 3, funciona como una quine regular, y usa el formato% para incluir también la fuente de Turtlèd.
si tiene entrada Python 2, reemplaza
input
en la cadena conraw_input
, y de lo contrario hace exactamente lo mismo.si la entrada es Turtlèd, reemplaza la
y
s en la fuente Turtlèd y la imprime.Los dos programas de Python funcionan de la misma manera y toman la entrada de la misma manera
fuente