Wenn Ihnen das gefällt, können Sie teilnehmen an:
Die monatliche Dyalog APL 2017 Code Golf Challenge
Erstellen Sie 12 Ausschnitte / Ausdrücke in derselben Sprache, die zu den Zahlen 0 bis 10 bzw. 42 führen, ohne jedoch literale Zahlen-, Zeichenketten- oder Zeichendaten zu schreiben.
Eingebaute Daten wie PI()
und ALPHABET()
sind in Ordnung, ebenso wie die Konstanten U, X, Y, Z und A von CJam und die Konstanten BLEND, CHORD, CENTER, BREAK und LINES von Processing.
Jeder Ausschnitt muss für sich stehen können, dh er darf nicht voneinander abhängig sein. Innerhalb eines einzelnen Snippets können Sie jedoch eine Variable zuweisen und diese frei verwenden, solange Sie sich direkt auf den Namen und nicht auf eine Zeichenfolge mit dem Namen beziehen.
Alle Snippets müssen zum Zeitpunkt der Übermittlung auf dem Computer des Absenders gültig sein (wie von SE gemeldet), dürfen jedoch nicht auf ungewöhnliche lokale Bedingungen wie die Anzahl der Dateien in einem Verzeichnis, das genaue Datum oder die Uhrzeit oder bestimmte Eingaben des Benutzers angewiesen sein .
Beispiele für gültige Snippets
3: INT(LOG10(YEAR(TODAY())))
weil es auf absehbare Zeit wahr bleibt
4: CUBICROOT(LEN(CHARACTERSET()))
weil ein 256-Buchstaben-Zeichensatz sehr verbreitet ist
8: SQRT(SYSTEMTYPE())
weil 64-Bit-Systeme sehr verbreitet sind
Beispiele für ungültige Snippets
5: LEN(USERNAME())
weil die meisten Benutzer "Admin" nicht als Login verwenden :-)
9: LOG10(SYSTEMMEMORY())
weil es nur auf Systemen mit genau 1 GB Arbeitsspeicher funktioniert
42: CODE("*")
weil es ein Zeichenkettenliteral enthält
Das Ergebnis jedes Snippets muss eine tatsächliche Zahl (value, int, float usw.) ergeben, die für weitere Berechnungen in derselben Sprache wie das Snippet verwendet werden kann, dh keine Textzeichenfolge, die diese Zahl darstellt.
Nur zeichenbasierte Sprachen erlaubt.
Score ist die Gesamtanzahl der Bytes aller 12 Snippets zusammen. Zeilenumbrüche, die die Ausschnitte trennen, werden nicht mitgezählt.
Beachten Sie, dass die oben genannten Regeln möglicherweise die Teilnahme einiger Sprachen verhindern, selbst wenn sie vollständig sind.
FAQ
F Können die Programme Eingaben akzeptieren?
A Ja, aber Sie dürfen nicht nur um Eingabe bitten und die entsprechende Nummer eingeben.
F Sind physikalische Ziffern (keine Daten) zulässig?
A Ja, z LOG10()
.
F Werden Symbole in Ruby als Literale gezählt?
A Ja.
F Beinhaltet die Punktzahl Zeilenumbrüche zwischen den einzelnen Ausschnitten?
A No.
Q Ist TI-BASIC "zeichenbasiert" genug, um gültig zu sein?
A Ja.
F Zählen falsch und wahr als Zahlenliterale?
A Nein, sie sind akzeptabel.
F Können wir ein Zahlenliteral verwenden, um eine Funktion aufzurufen, wenn dies der einzige Weg ist und die Zahl keinen Einfluss auf die Ausgabe der Funktion hat?
A Ja, wenn dies der normale Weg ist, Code in Ihrer Sprache zu schreiben.
F Meine Sprache geht davon aus, dass am Anfang jedes Programms / Ausdrucks ein [etwas] steht. Muss ich es einschließen, oder sollten meine Ausschnitte nur funktionieren, wenn sie in der Mitte eines Programms / Ausdrucks stehen?
A Sie sollten nur in der Mitte eines Programms / Ausdrucks arbeiten.
F Was ist mit Regex-Literalen?
A Verboten, außer für Sprachen, die nur reguläre Ausdrücke verwenden.
F Ist ein Codeteil akzeptabel, mit dem alle angegebenen Zahlen gedruckt werden können?
A Nein, sie müssen getrennt und voneinander unabhängig sein.
F Darf ich von einem Kesselschild wie int main() {}...
oder einem gleichwertigen ausgehen?
A Ja.
F Welche Ausgabedatentypen sind zulässig?
A Beliebiger numerischer Datentyp wie int, float usw.
F Muss ich das Ergebnis jedes Snippets ausdrucken?
A Nein, es reicht aus, das Ergebnis für eine spätere Verwendung zur Verfügung zu stellen.
F Sind voreingestellte Variablen zulässig?
A Ja, und sie werden für jedes Snippet zurückgesetzt (falls geändert).
F Werden π und e als Zahlenliterale betrachtet?
A Nein, Sie dürfen sie verwenden.
F Kann ich 4 und 2 für 42 in verschiedenen Zellen zurückgeben?
A Nein, sie müssen als eine Nummer verbunden sein.
Q Bytes oder Zeichen?
A Bytes, aber Sie können eine beliebige Codepage auswählen.
F Können konstante Funktionen und voreingestellte Variablen wie J's 9:
, Actually's 9
und Pretzel's 9
verwendet werden?
A Ja, wenn der Wortschatz endlich ist (19 für J, 10 für Actually und Pretzel).