Wykonaj stwardnienie promieniujące Quine

15

Ostatniej nocy szukałem wyzwania Quine Hardened Quine, ale nie mogłem go znaleźć. Okazuje się, że nikt jeszcze o to nie pytał! Oto on:

Twoim zadaniem jest stworzenie quine, czyli niepustego programu komputerowego, który drukuje własne źródło bez czytania. Ponadto, jeśli usuniesz jeden bajt z oryginalnego programu, nowy program powinien wydrukować źródło oryginalnego programu.

To jest więc odpowiedzi są oceniane w bajtach, przy czym mniej bajtów jest lepszych.

Post Rock Garf Hunter
źródło
Powiązane
Jo King
Powiązane również (duplikacja zamiast usuwania)
JungHwan Min
1
Czy to nie było pytanie, bez odpowiedzi przez 1,5 roku, a następnie usunięte b / c konto użytkownika zostało usunięte czy coś? Nie mówię, że nie chcę jednego przez +1. Przysięgnij, że to widziałem.
Magic Octopus Urn
@MagicOctopusUrn Myślałem, że istnieje. Chciałem na nie odpowiedzieć, ale nie mogłem go znaleźć. Jeśli ktoś znajdzie stary, chętnie sfałszuję to.
Post Rock Garf Hunter,
Ja też nie mogę tego znaleźć. Muszę powoli szaleć.
Magic Octopus Urn

Odpowiedzi:

7

Gol> <> , 49 45 bajtów

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

Wypróbuj online!

Weryfikacja!

Zrobiłem to w Gol> <> zamiast> <>, ponieważ ten pierwszy ma przydatny Koperator kopiujący góręn elementy ze stosu, co ułatwia duplikowanie czystej kopii kodu źródłowego.

Wyjaśnienie:

Działa to poprzez posiadanie dwóch kopii kodu wykonawczego i przekierowanie do drugiego, jeśli pierwszy jest uszkodzony. Nie udaje się to po usunięciu ostatniej \lub środkowej nowej linii, które są kompensowane później.

<<                       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
źródło
Grałem w golfa 2 bajty !!!
KrystosTheOverlord
Właśnie zdałem sobie sprawę, że zrobiłem to całkowicie źle, przepraszam, istnieje jeden zestaw znaków, które jeśli brakuje, program po prostu nie działa ...
KrystosTheOverlord
@KrystosTheOverlord Możesz użyć programu weryfikacyjnego do przetestowania swoich programów
Jo King