Quine Relay!
Un relé quine de orden es una serie de programas P 1 ... P n en distintos idiomas, de modo que cada programa P i emite P i + 1 y P n emite .
Por ejemplo, un relé de 2 quines se puede ver aquí:
Rubí → 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__
emite este programa 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
que a su vez genera el programa Ruby original.
El reto
La primera respuesta será un relevo de quine de orden : un quine normal. Puede estar en cualquier idioma.
La siguiente respuesta elegirá un idioma diferente y creará un orden relevos de quine usando esos dos idiomas.
Y así. La -ésima respuesta creará un orden k relé de quine utilizando el anterior k - 1 idiomas y un idioma nuevo y diferente.
Victorioso
Si, después de 2 semanas, no se han agregado más respuestas, el ganador es la persona que respondió con el relevo de quine de mayor orden.
Más reglas
- Ninguna persona puede responder dos veces seguidas.
- Ninguna persona puede responder dentro de una hora de su publicación más reciente.
- Los idiomas que difieren según la versión se consideran distintos. Por lo tanto, Python 2 y Python 3 pueden ser parte de la cadena.
- Los idiomas que difieren según el compilador o el intérprete no se consideran distintos. Entonces, Python 3 (Cython) y Python 3 se consideran intercambiables pero no distintos.
- Cada respuesta puede ordenar los idiomas de cualquier manera. Si la tercera respuesta tiene un orden de Ruby → Perl 6 → JavaScript, no está restringido a agregar un idioma al final. Si estaba agregando Java a la mezcla, podría escribir JavaScript → Ruby → Java → Perl 6 si así lo desea.
Formato para respuestas
norte. Idioma 1 → Idioma 2 →… → Idioma n
Idioma 1
language 1 code
Idioma 2
language 2 code
Idioma 3
language 3 code
...
Idioma n
language n code
Siéntase libre de agregar explicaciones en cualquier parte de sus respuestas.
fuente
Respuestas:
10. Javascript → Foo → brainfuck → Wumpus → Gol> <> → RAD →> <> → Python 2 → Brain-Flak → 4
Editar: Para la siguiente respuesta, he Jugamos al golf cómo el pitón genera el Cerebro-Flak un poco más aquí , pero no puedo ser molestado a actualizar los vínculos.
Se agregó Gol> <>. Es poco
rpH
después del código Wumpus. También he optimizado un poco el código Brainfuck y Brain-Flak. ¡Verificación!JavaScript (Node.js)
Pruébalo en línea!
Foo
Pruébalo en línea!
cerebro
Pruébalo en línea!
Wumpus
Pruébalo en línea!
Gol> <>
Pruébalo en línea!
RAD
Pruébalo en línea!
> <>
Pruébalo en línea!
Python 2
Pruébalo en línea!
Brain-Flak
Pruébalo en línea!
4 4
Pruébalo en línea!
fuente
3. JavaScript → Python 2 → Foo
JavaScript
Clásico JS quine. Este es un programa completo que sale a la consola:
Pruébalo en línea!
Python 2
El código de Python básicamente imprime el código JS con comillas:
Pruébalo en línea!
Foo
El código Foo es código JS con comillas:
Pruébalo en línea!
fuente
String.fromCharCode(39,34)
ahorrar en las invocaciones repetidas?String.fromCharCode(39)+String.fromCharCode(34)
para ahorrar un poco ;-)1. Foo
Foo
Un simple Foo quine:
Pruébalo en línea!
fuente
2. Python 2 → Foo
utilicé la base de Python básica, luego agregué las comillas
pitón:
Pruébalo en línea!
foo:
Pruébalo en línea!
fuente
5.> <> → JavaScript → brainfuck → Python 2 → Foo
Respuesta obligatoria de brainfuck.
> <>
Pruébalo en línea!
JavaScript
Pruébalo en línea!
cerebro
Pruébalo en línea!
Python 2
Pruébalo en línea!
Foo
Pruébalo en línea!
fuente
9. JavaScript → Foo → Brainfuck → Wumpus → RAD →> <> → Python 2 → Brain-Flak → 4
Esto fue divertido.
No tengo idea de por qué decidí agregar 4, ni idea de por qué rehice todo (por supuesto, copiar y pegar), pero lo hice: D
JavaScript
Pruébalo en línea!
Dado que la salida es demasiado grande para que TIO regrese, aquí hay un probador que recorre todos los idiomas.
Foo
Pruébalo en línea!
cerebro
Pruébalo en línea!
Wumpus
Pruébalo en línea!
RAD
Pruébalo en línea!
> <>
><>
genera una nueva línea en el medio con'a'
lo que la función de Python se separaría del resto del código.Pruébalo en línea!
Python 2
Pruébalo en línea!
Python genera el brain-flak algo optimizado, reutilizando el elemento anterior en la pila, porque de lo contrario el código brain-flak estaría alrededor de un megabyte.
Brain-Flak
Pruébalo en línea!
4 4
Pruébalo en línea!
fuente
4.> <> → JavaScript → Python 2 → Foo
> <>
Pruébalo en línea!
He agregado el literal de cadena de ajuste clásico, que se agrega
'rpp>o<
al inicio y también lo edito en la parte central.JavaScript (Node.js)
Pruébalo en línea!
He acortado el
String.fromCharCode
parte según los comentarios sobre la última respuesta. Sé que este desafío no es en realidad golf de código, pero me hace sentir mejor.Python 2
Pruébalo en línea!
Agregó el
\'
para el inicio de la quine> <>.Foo
Pruébalo en línea!
fuente
6.> <> → JavaScript → brainfuck → Python 2 → Brain-Flak → Foo
Respuesta obligatoria de Brain-Flak.
> <>
Pruébalo en línea!
JavaScript (Node.js)
Pruébalo en línea!
cerebro
Pruébalo en línea!
Python 2
Pruébalo en línea!
Brain-Flak
Pruébalo en línea!
He excluido el código ya que tiene 41568 bytes y alcanza el límite de caracteres de la respuesta. El código es similar al código brainfuck y tiene el formato:
Foo
Pruébalo en línea!
fuente
7.> <> → JavaScript → RAD → brainfuck → Python 2 → Brain-Flak → Foo
> <>
Pruébalo en línea!
JavaScript
Pruébalo en línea!
RAD
Pruébalo en línea!
cerebro
Pruébalo en línea!
Python 2
Pruébalo en línea!
Brain-Flak
Pruébalo en línea!
Foo
Pruébalo en línea!
fuente
8.> <> → Wumpus → JavaScript → RAD → brainfuck → Python 2 → Brain-Flak → Foo
Agregando en otro lenguaje 2D, Wumpus.
> <>
Pruébalo en línea!
Esto ahora imprime un extra
"
antes del código Wumpus.Wumpus
Pruébalo en línea!
Similar al
><>
quine, esto envuelve un literal de cadena alrededor del código e imprime solo la sección de JavaScriptJavaScript (Node.js)
Pruébalo en línea!
RAD
Pruébalo en línea!
Estoy excluyendo secciones muy largas de código de la cadena, para no completar la respuesta.
cerebro
Pruébalo en línea!
Python 2
Pruébalo en línea!
Brain-Flak
Pruébalo en línea!
Foo
Pruébalo en línea!
Esta fue en realidad la parte más molesta del código. Foo solo admite literales de cadena de 254 de longitud por alguna razón, por lo que tuve que jugar un poco y dividir el Javascript del código 2D para mantenerlo corto. La siguiente persona probablemente tendrá que dividir el Javascript.
fuente