Faire une quine durcie aux radiations

14

Hier soir, je cherchais le défi Radiation Hardened Quine, mais je ne l'ai pas trouvé. Il s'avère que personne ne l'a encore demandé! Voici donc:

Votre tâche consiste à créer une quine, c'est-à-dire un programme informatique non vide qui imprime sa propre source sans la lire. De plus, si vous supprimez un octet de votre programme d'origine, le nouveau programme doit imprimer la source de votre programme d'origine.

Il s'agit de donc les réponses sont notées en octets avec moins d'octets mieux.

Post Rock Garf Hunter
la source
En relation
Jo King
Également lié (duplication au lieu de suppression)
JungHwan Min
1
Cela n'a-t-il pas été demandé, sans réponse pendant 1,5 an, puis supprimé, car le compte utilisateur a été supprimé ou quelque chose? Je ne dis pas que je n'en veux pas +1. Jure juste que je l'ai vu.
Magic Octopus Urn
@MagicOctopusUrn Je pensais que cela existait. Je voulais y répondre mais je ne l'ai pas trouvé. Si quelqu'un trouve l'ancien, je serais heureux de tromper moi-même.
Post Rock Garf Hunter
Je ne le trouve pas non plus. Je dois devenir lentement fou.
Magic Octopus Urn

Réponses:

7

Gol> <> , 49 45 octets

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

Essayez-le en ligne!

Vérification!

J'ai fait cela dans Gol> <> plutôt que> <> parce que le premier a l' Kopérateur pratique qui copie les premiers néléments de la pile, ce qui facilite la duplication de la copie propre du code source.

Explication:

Cela fonctionne en ayant deux copies du code d'exécution et en redirigeant vers le second si le premier est endommagé. Cela échoue lorsque la dernière \ou la nouvelle ligne intermédiaire est supprimée, les deux étant compensées plus tard.

<<                       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
Jo King
la source
J'ai joué au golf sur 2 octets !!!
KrystosTheOverlord
Je viens de réaliser que je l'ai fait complètement mal, désolé, il y a un ensemble de caractères qui s'ils manquent, le programme ne fonctionne tout simplement pas ...
KrystosTheOverlord
@KrystosTheOverlord Vous pouvez utiliser le programme de vérification pour tester vos programmes
Jo King