"L;L'!+!'_
Experimente online!
Isso imprime:
_'!+!'L;L"
Experimente online!
E vice versa.
Explicação
Esta é uma modificação do quine reverso . Aqui está trabalhando a nosso favor que !
é usado para impressão e também está a apenas um ponto de código da cotação "
. Isso facilita a palindromia da seção de impressão de cotações (a '!+!'
). Vamos começar com o primeiro código:
"L;L'!+!'_
Este programa possui dois pontos de entrada no L
s, cada um criando um átomo de esquerda. No entanto, o caminho certo atinge imediatamente o ;
que o destrói. O da esquerda entra no modo de sequência e passa para o final, para que imprima o código inteiro (exceto o "
) de trás para a frente. Isso já nos dá _'!+!'L;L
. Tudo o que resta é imprimir o "
. _
pode ser ignorado, '!
define a massa do átomo como 33 (o ponto de código de !
), +
incrementa-a "
e !
imprime-a. Isso é todo o resultado feito. Os 'L
sets a átomos de massa para o ponto de código de L
mas isso é irrelevante. ;
destrói esse átomo também e, como não restam átomos, o programa termina.
Agora, o contrário:
_'!+!'L;L"
Novamente, temos dois pontos de entrada, mas um átomo é imediatamente destruído. Desta vez, percorremos a !+!'
seção primeiro, e começamos imprimindo uma cotação. O '_
é novamente irrelevante, mas precisamos do _
(ou de algum outro personagem inútil) aqui para evitar '
escapar do "
. O átomo chega ao final, percorre o código-fonte uma vez no modo string para imprimir o restante do programa em sentido inverso, L
então é ignorado e ;
destrói o átomo e finaliza o programa.