Dopo la sfida del terzo ordine , il tuo compito è scrivere un programma Ouroboros che usi quante più lingue possibile.
Cioè, nella lingua A, scrivere un programma pA che emette il programma pB nella lingua B. Il programma pB dovrebbe generare il programma pC nella lingua C, e così via fino a quando alla fine un programma emette il programma originale pA nella lingua A.
Non ci sono due lingue nel tuo loop possono essere uguali o sottoinsiemi o superset l'uno dell'altro. Nessuno dei programmi nel loop può essere identico.
Vince la catena di lingue più lunga. La lunghezza del codice sorgente sarà il tie-breaker.
Ecco una soluzione di esempio di lunghezza 3 fornita da Ventero.
s='print q<puts %%q{s=%r;print s%%s}>';print s%s
con Python genera questo frammento di Perl
print q<puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}>
che genera il seguente codice Ruby
puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}
che quindi stampa lo snippet originale di Python:
s='print q<puts %%q{s=%r;print s%%s}>';print s%s