Faça um Quine Endurecido por Radiação


14

Ontem à noite, eu estava procurando pelo desafio Radiation Hardened Quine, mas não o encontrei. Acontece que ninguém pediu ainda! Então aqui está:

Sua tarefa é criar um quine, que é um programa de computador não vazio que imprime sua própria fonte sem lê-lo. Além disso, se você remover qualquer byte do programa original, o novo programa deverá imprimir a fonte do programa original.

Isso é então as respostas são pontuadas em bytes, com menos bytes sendo melhores.



Também relacionado (duplicação em vez de supressão)
JungHwan Min

1
Isso não foi perguntado, sem resposta por 1,5 anos e depois excluído porque a conta do usuário foi excluída ou algo assim? Não estou dizendo que eu não quero um +1. Juro que já vi.
Magic Octopus Urn

@MagicOctopusUrn Eu pensei que existia. Eu queria responder, mas não consegui encontrá-lo. Se alguém encontrar o antigo, eu ficaria feliz em enganar isso pessoalmente.
Post Rock Garf Hunter

Também não consigo encontrar. Eu devo estar ficando lentamente louco.
Magic Octopus Urn

Respostas:


7

Gol> <> , 49 45 bytes

<<H~Kla}\`q%2l}}ss2"<\
<<H~Kla}\`q%2l}}ss2"<\

Experimente online!

Verificação!

Fiz isso no Gol> <> ao invés de> <> porque o primeiro possui o Koperador prático que copia os nitens principais da pilha, o que facilita a duplicação da cópia limpa do código-fonte.

Explicação:

Isso funciona com duas cópias do código em execução e redirecionando para o segundo se o primeiro estiver danificado. Isso falha quando a última \linha ou a nova linha do meio é removida, sendo ambas compensadas posteriormente.

<<                       Redirect left 
                    <\  Switch to other source code if this line is irradiated
                   "     Push source with wrapping string literal
                ss2      Push quote
              }}         Move "< to end
          q%2l           If the length of the stack is not right
        \`               Push an extra \
       }                 Move the \ to the end
      a                  Newline
    Kl                   Duplicate the stack
   ~                     Pop the extra newline
  H                      Halt and print stack

Eu joguei fora 2 bytes !!!
KrystosTheOverlord


Eu só percebi que eu fiz isso completamente errado, desculpe, há um conjunto de caracteres que se eles estão faltando, o programa simplesmente não funciona ...
KrystosTheOverlord

@KrystosTheOverlord Você pode usar o programa de verificação para testar seus programas
Jo King
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.