Después del desafío de quine de tercer orden , su tarea es escribir un programa Ouroboros que use tantos idiomas como sea posible.
Es decir, en el lenguaje A, escriba un programa pA que genere el programa pB en el lenguaje B. El programa pB debería emitir el programa pC en el lenguaje C, y así sucesivamente hasta que finalmente un programa emita el programa original pA en el lenguaje A.
No hay dos idiomas en su ciclo que puedan ser iguales o subconjuntos o superconjuntos. Ninguno de los programas en el bucle puede ser idéntico.
La cadena de idiomas más larga gana. La longitud del código fuente será el desempate.
Aquí hay una solución de ejemplo de longitud 3 dada por Ventero.
s='print q<puts %%q{s=%r;print s%%s}>';print s%s
con Python genera este fragmento de Perl
print q<puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}>
que genera el siguiente código Ruby
puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}
que luego imprime el fragmento original de Python:
s='print q<puts %%q{s=%r;print s%%s}>';print s%s