W tym pytaniu będę mówić o programach jako ciągach, są to ciągi bajtów, a nie znaków. Sposób renderowania lub wyświetlania wynikowego programu nie jest ważny dla tego wyzwania, liczy się tylko sposób, w jaki pojawia się w pamięci.
Dziewiczy Program jest programem że podczas uruchamiania, nie błąd, jednak będzie ona błędów, gdy ciągłe podciąg o rozmiarze n , gdzie 1 ≤ n < | S | , jest usunięty.
Brudny program jest odwrotny, jest to program który po uruchomieniu popełnia błąd, jednak za każdym razem, gdy ciągły podciąg o rozmiarze n , gdzie 1 ≤ n < | S | jest usuwany, nie powoduje błędu.
W przypadku tego wyzwania błędem jest niepuste wyjście do STDERR.
Twoim wyzwaniem jest napisanie brudnego programu, który wykorzystuje tak wiele unikalnych bajtów, jak to możliwe. Oznacza to, że otrzymasz jeden punkt za każdy unikalny bajt, który pojawia się w kodzie, przy czym lepszy wynik jest lepszy. Maksymalny wynik to zatem 256.
źródło
Odpowiedzi:
Unary , 14 bajtów
To koduje program pieprzenia mózgu
[
, który popełnia błędy z powodu niedopasowanych nawiasów.Usuwanie bajtów spowoduje
>
,<
,+
,-
,.
,,
lub pusty program, który są ważne programy brainfuck.źródło
R , 3 bajty
Wypróbuj online!
Nazwa obiektu jest poprawnym programem w języku R.
qrt
nie jest nazwą czegokolwiek, więc zwraca błąd.q
jest funkcją wyjściaqr
to funkcja rozkładu QRrt
jest funkcją próbkowania rozkładu tqt
jest odwrotnością rozkładu t CDFt
jest funkcją transpozycjiźródło
0-9cqtCDFIT
, każdy program musi zaczynać sięcm
,qf
,qr
,qt
,ts
lubIm
. Długość trzy możliwościqrf
,qrm
,qrt
,qts
itsd
, a tylko jeden z nich jest brudna (inni nie mogą zostać przedłużone albo aby je Filthy jak nie ma funkcjirm*
,rf*
,ts*
,sd*
)Galaretka ,
4 5 6 7 8 1011 bajtówWypróbuj online!
Sprawdź to.
Próbuje dodać ciąg z liczbą całkowitą.
Niektóre z możliwych podprogramów:
“a”
to dosłowny ciąg znaków.“a
jest tym samym ciągiem literału.“
jest pustym ciągiem.“a”;
konkatenuje „a” z samym sobą.... zbyt wielu, by wymienić je wszystkie.
źródło
Polyglot, 3 bajty
Pracuje w:
W JavaScript wyrzuca SyntaxError: nieoczekiwany token: literał liczbowy lub podobny błąd.
Wszystkie pozostałe ciągi są poprawnymi literałami liczbowymi ( 1 , 2 lub 12 ).
W GHCi to rzuca
To dlatego, że stara się zastosować
1
do2
postaci funkcji, jednak nie może. Kiedy jakakolwiek część tego zostanie usunięta, staje się po prostu literałem liczbowym.źródło
Python 2 , 2 bajty
Nieoczekiwany znak po znaku kontynuacji linii
\
a następnie dowolne123456789 #
Wypróbuj online!
Niepoprawna liczba ósemkowa
0
a następnie dowolne89
Wypróbuj online!
Nieoczekiwane wcięcie
lub
\t
po którymkolwiek z nich123456789\
Wypróbuj online!
źródło
Python 2/3 , 3 bajty
LUB
Wypróbuj online!
W python „\ f” jest taki sam jak „\ x0c” i jest danych postaci. Oznacza to, że drukarka wskazuje przejście do następnego wiersza.
Jeśli wyrażenie python zaczyna się lub kończy
\f
, to w zasadzie jest tak ignorowane\f2
jest poprawnym wyrażeniem.4
I2
może być dowolny numer 0-9. Jednak aby pierwszy bajt był0
poprawny tylko w Pythonie 2.7.15, tak jak02
zostało to prawnie zadeklarowane2
.Tak więc samo wyrażenie zawiedzie z błędem składni, ponieważ istnieją dwie liczby oddzielone spacją. Jednak każde skrócenie albo umieszcza
\f
na początku lub na końcu, gdzie to nie ma znaczenia, lub tworzy,42
co jest ważne.(Warto zauważyć, że w IDLE plik ten otwiera się jak „42”).
Źródło wyjaśnienia kanału formularza: /programming//a/26184126
źródło
\f
. Oto link do wypróbowania online, z którego można uzyskać wstępnie sformatowaną odpowiedź.Dyalog APL , 5 bajtów ( SBCS )
Wypróbuj online! lub przetestuj wszystkie możliwe programy
Są na pewno lepsze nudne odpowiedzi, ale jest to najlepsza nudna odpowiedź, jaką znalazłem
SBCS jest wymagany, ponieważ wydaje się, że Dyalog Classic zawsze ma wyjście w STDERR, co czyni go bezużytecznym.
źródło