Scrivi un programma o una funzione non vuota che quando chiamato genera un singolo valore, 1 o 0, e quando chiamato più volte, i numeri di output producono la rappresentazione binaria del codice sorgente del programma (nella stessa tabella codici da cui viene compilato il codice /interpretato).
Ad esempio, se il codice sorgente fosse abc
(in ASCII), gli output sarebbero:
1st call: 0 // ASCII letter 'a'
2nd call: 1
3rd call: 1
4th call: 0
5th call: 0
6th call: 0
7th call: 0
8th call: 1
9th call: 0 // ASCII letter 'b'
10th call: 1
11th call: 1
12th call: 0
13th call: 0
14th call: 0
15th call: 1
16th call: 0
17th call: 0 // ASCII letter 'c'
18th call: 1
19th call: 1
20th call: 0
21st call: 0
22nd call: 0
23rd call: 1
24th call: 1
After the 24th call, the behaviour is undefined.
La rappresentazione binaria della sorgente deve contenere almeno uno 0 bit e un 1 bit.
Invece di 1 e 0, è possibile generare due valori distinti e coerenti (come true
e false
).
Sono consentiti programmi di modifica automatica che producono la rappresentazione binaria della fonte originale, a condizione che non leggano il codice sorgente per scoprire cosa stampare dopo.
Questo è code-golf , quindi vince la risposta più breve in byte.