Zdefiniujmy nieskazitelny program jako program, który sam nie ma żadnych błędów, ale spowoduje błąd, jeśli zmodyfikujesz go, usuwając ciągłe podciągi N znaków, gdzie 1 <= N < program length
.
Na przykład trzyznakowy program w języku Python 2
`8`
jest nieskazitelnym programem ( dzięki, Sp ), ponieważ wszystkie programy wynikające z usunięcia podciągów o długości 1 powodują błędy (w rzeczywistości błędy składniowe, ale zrobi to każdy rodzaj błędu):
8`
``
`8
a także wszystkie programy wynikające z usunięcia podciągów o długości 2 powodują błędy:
`
`
Gdyby na przykład `8
program nie zawierał błędów `8`
, nie byłby nieskazitelny, ponieważ wszystkie wyniki usuwania podciągów muszą zawierać błędy.
Twoim zadaniem w tym wyzwaniu jest napisanie możliwie najkrótszego nieskazitelnego programu, który nie pobiera danych wejściowych, ale wypisuje jedno z następujących pięciu słów:
world
earth
globe
planet
sphere
To, które słowo wybierzesz, zależy wyłącznie od Ciebie. Jedyne słowo plus opcjonalny znak nowej linii powinny być wydrukowane na stdout (lub najbliższą alternatywę dla twojego języka). Najkrótszy program w bajtach wygrywa.
Uwagi:
- Wymagany jest samodzielny program, a nie funkcja.
- W słowach rozróżniana jest wielkość liter; wyjście
World
lubEARTH
jest niedozwolone. - Ostrzeżenia kompilatora nie są liczone jako błędy.
- Błędne podprogramy mogą pobierać dane wejściowe lub dane wyjściowe lub robić cokolwiek innego, o ile zawsze ostatecznie powodują błąd.
Oto fragment kodu stosu, który będzie zawierał listę programów, które należy popsuć, biorąc pod uwagę potencjalnie nieskazitelny program:
<script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>function go() { var s = $('#i').val(), e = []; for (var i = 1; i < s.length; i++) { for (var j = 0; j <= s.length - i; j++) { e.push(s.substring(0, j) + s.substring(j + i)); } } $('#o').val(e.join('\n---\n')); }</script>Program:<br><textarea id='i' rows='16' cols='80'>`8`</textarea><br><button onclick='go()' type='button'>Go</button><br><br>Programs that should error: (--- separated)<br><textarea id='o' rows='16' cols='80'></textarea><br>