In dieser Frage werde ich über Programme als Zeichenketten sprechen, das sind Zeichenketten aus Bytes und nicht aus Zeichen. Wie Ihr resultierendes Programm gerendert oder angezeigt wird, ist für diese Herausforderung nicht wichtig, sondern nur, wie es im Speicher angezeigt wird.
Ein unberührtes Programm ist ein Programm , wenn es ausgeführt wird, keinen Fehler macht, jedoch immer dann, wenn ein kontinuierlicher Teilstring der Größe n mit 1 ≤ n < | S | , ist entfernt.
Ein schmutziges Programm ist das Gegenteil, es ist ein Programm , , dass bei der Ausführung macht Fehler, jedoch immer dann , wenn eine kontinuierliche Teilkette der Größe n , wobei 1 ≤ n < | S | wird entfernt, es tritt kein Fehler auf.
Für diese Herausforderung ist ein Fehler eine nicht leere Ausgabe an STDERR.
Ihre Herausforderung besteht darin, ein schmutziges Programm zu schreiben, das so viele eindeutige Bytes wie möglich verwendet. Dies bedeutet, dass Sie für jedes eindeutige Byte, das in Ihrem Code angezeigt wird, einen Punkt erhalten, wobei eine größere Punktzahl besser ist. Die maximale Punktzahl beträgt somit 256.
quelle
Antworten:
Unär , 14 Bytes
Dies kodiert das Brainfuck-Programm
[
, das Fehler aufgrund nicht übereinstimmender Klammern aufweist.Entfernen Bytes ergeben
>
,<
,+
,-
,.
,,
oder das leere Programm, die gültigen Gehirnfick Programme sind.quelle
R , 3 Bytes
Probieren Sie es online!
Ein Name eines Objekts ist ein gültiges Programm in R.
qrt
ist nicht der Name von irgendetwas, daher wird ein Fehler zurückgegeben.q
ist die Beendigungsfunktionqr
ist die QR-Zerlegungsfunktionrt
ist die t-Verteilungsabtastfunktionqt
ist die t-Verteilungsinverse CDFt
ist die Transponierungsfunktionquelle
0-9cqtCDFIT
, muss jedes Programm daher beginnen mitcm
,qf
,qr
,qt
,ts
oderIm
. Die Länge drei Möglichkeitenqrf
,qrm
,qrt
,qts
undtsd
und nur eine davon ist schmutzig (die andere können auch nicht verlängert werden , um sie schmutzig zu machen da es keine Funktionenrm*
,rf*
,ts*
,sd*
)Jelly ,
4 5 6 7 8 1011 BytesProbieren Sie es online!
Überprüfen Sie es.
Versucht, eine Zeichenfolge mit einer Ganzzahl hinzuzufügen.
Einige der möglichen Unterprogramme:
“a”
ist ein String-Literal.“a
ist das gleiche String-Literal.“
ist die leere Zeichenfolge.“a”;
verkettet "a" mit sich selbst.... zu viele, um sie alle aufzuzählen.
quelle
Mehrsprachig, 3 Bytes
Arbeitet in:
Löst in JavaScript SyntaxError: unerwartetes Token: numerisches Literal oder einen ähnlichen Fehler aus.
Alle anderen Zeichenfolgen sind gültige numerische Literale ( 1 , 2 oder 12 ).
In GHCi wirft dies
Dies liegt daran, dass versucht wird,
1
auf2
eine Funktion anzuwenden , dies jedoch nicht möglich ist. Wenn ein Teil davon entfernt wird, wird es einfach zu einem numerischen Literal.quelle
Python 2 , 2 Bytes
Unerwartetes Zeichen nach dem Zeilenfortsetzungszeichen
\
gefolgt von einem von123456789 #
Try it online!
Ungültige Oktalzahl
0
gefolgt von einem von89
Try it online!
Unerwarteter Einzug
oder
\t
gefolgt von einem von123456789\
Try it online!
quelle
Python 2/3 , 3 Bytes
ODER
Probieren Sie es online!
In Python ist "\ f" dasselbe wie "\ x0c" und ein Formular-Feed- Zeichen. Dies bedeutet, dass ein Drucker in die nächste Zeile wechseln muss.
Wenn ein Python-Ausdruck mit beginnt oder endet
\f
, wird er grundsätzlich ignoriert, ebenso\f2
wie ein gültiger Ausdruck.Das
4
und2
kann eine beliebige Zahl von 0 bis 9 sein. Das erste Byte0
ist jedoch nur in Python 2.7.15 gültig, wie02
eine gesetzliche Erklärung von gemacht wurde2
.Der Ausdruck selbst schlägt mit einem Syntaxfehler fehl, da zwei durch ein Leerzeichen getrennte Zahlen vorhanden sind. Jegliche Verkürzung setzt jedoch entweder
\f
am Anfang oder am Ende an, wo es keine Rolle spielt, oder erzeugt,42
was gültig ist.(Es ist erwähnenswert, dass diese Datei im IDLE-Modus wie "42" aussieht.)
Erklärungsquelle für den Formular-Feed: https://stackoverflow.com/a/26184126
quelle
\f
. Hier ist ein Online-Link zum Ausprobieren, über den Sie eine vorformatierte Antwort erhalten können.Dyalog APL , 5 Bytes ( SBCS )
Probieren Sie es online! oder testen Sie alle möglichen Programme
Es gibt sicherlich langweiligere Antworten, aber dies ist die beste, nicht langweilige, die ich gefunden habe
SBCS ist erforderlich, da Dyalog Classic immer eine Ausgabe in STDERR zu haben scheint, wodurch es unbrauchbar wird.
quelle