Questa sfida è simile a Can You Meta Quine?
Un quine è un programma che si produce su STDOUT. Questa sfida è quella di produrre un programma A che quando eseguito produce un programma B su STDOUT. Il programma B quando viene eseguito produce il programma A su STDOUT. I programmi A e B devono essere scritti (ed eseguiti) nella stessa lingua. La domanda collegata limitava A! = B. Sembrava troppo facile. Quindi, per questa domanda, insistiamo sul fatto che A e B siano antichità, usando le seguenti regole:
- I programmi A e B non possono usare nessuno degli stessi caratteri, salvo spazi bianchi e separatori di istruzioni e caratteri di punteggiatura.
- I programmi A e B devono contenere almeno un carattere che non sia né spazi bianchi né un separatore di istruzioni, né un carattere di punteggiatura.
- Ai fini delle regole 1 e 2, il termine "spazi bianchi" esclude qualsiasi simbolo o sequenza di simboli che a sua volta è un'istruzione, un operatore o un simbolo interpretato (al contrario di un separatore). Pertanto, nel linguaggio degli spazi bianchi, non esiste uno spazio bianco.
- Un separatore di istruzioni è un elemento sintattico usato convenzionalmente nella lingua per separare le istruzioni. Ciò include la nuova riga in python o il punto e virgola in Java, perl o C.
- Un carattere di punteggiatura è un carattere ASCII che non è né spazi bianchi né nella classe di caratteri della parola POSIX (ovvero un carattere di sottolineatura non è punteggiatura per questo scopo) - vale a dire
ispunct()
che restituisce vero, e non lo è_
. - Il programma A quando eseguito deve produrre un programma (programma B) sul suo STDOUT, che quando eseguito a sua volta produce il programma A.
- I programmi A e B devono essere nello stesso linguaggio di programmazione.
- Il linguaggio di programmazione utilizzato deve effettivamente essere un linguaggio di programmazione. A meno che tu non faccia un buon caso, suggerirò che Turing deve essere completo.
- Almeno uno di A e B deve eseguire almeno un'istruzione all'interno della lingua.
Questo è il codice golf, quindi vince la risposta più breve, il punteggio è la lunghezza del programma A in byte (cioè la lunghezza del programma B non è rilevante).
A
e a
considerati diversi "personaggi"?