Semelhante a outros quebra-cabeças quine (mais especificamente, este ), escreva um programa que produza a fonte por si mesmo.
Aqui está a nova reviravolta: O código produzido NÃO deve ser idêntico à fonte. Em vez disso, ele deve gerar um programa diferente que criará o primeiro.
O desafio vinculado acima conseguiu isso saltando entre dois idiomas. Eu estou pensando que este seria feito em apenas um idioma , mas as duas (ou mais) versões da fonte devem ser significativamente diferentes (consulte as regras abaixo). Com essa restrição, as respostas de um único caractere seriam proibidas, exigindo, assim, um pouco mais de reflexão para uma submissão final.
REGRAS
- Seu código deve ser produzido em apenas um idioma. (Vários envios, um para cada idioma é perfeitamente aceitável.)
- Suas diferentes versões de código devem ser sintaticamente distintas. Em outras palavras, se você desenhar uma árvore de sintaxe abstrata para seu código, deve haver pelo menos um nó diferente.
- Fornecimento de uma AST não será necessário, mas se você se sentir inclinado a fornecer um para cada um de seus programas, ele iria ajudar no julgamento.
- Você pode produzir quantas iterações desejar, desde que todas permaneçam sintaticamente distintas. (Mais ajudará sua pontuação, veja abaixo.)
PONTUAÇÃO
Sua pontuação final será a duração média de todos os seus programas, dividida pelo número de programas.
Exemplo 1:
A (fonte para B) = 50 caracteres
B (fonte para A) = 75 caracteres
Pontuação final = 31,25
Exemplo 2:
A (fonte para B) = 50 caracteres
B (fonte para C) = 75 caracteres
C (fonte para A) = 100 caracteres
Pontuação final = 25