Ihr Ziel bei diesem Code Golf ist es, zwei Zeichenfolgen language
und code
(wenn der Golfcode, den Sie dafür geschrieben haben, mehrzeilig ist, dann wäre diese Variable mehrzeilig.) Und eine ganze Zahl bytes
. Sie repräsentieren die Variablen für eine Programmiersprache, die Anzahl der benötigten Bytes und den Code selbst.
Danach formatieren Sie es wie ein Code-Golfer.
Die Ausgabevariable ist eine mehrzeilige Zeichenfolge mit dem Namen answer
.
Sie können mehrzeilige Zeichenfolgen verwenden für:
Wenn Sie nach Stapelüberlauf suchen , sollten Sie in der Lage sein, weitere Programmiersprachen zu finden, die dies unterstützen.
Hier ist eine Vorlage für den Ausgabe-Markdown. Die code
Variable befindet sich in einem Codeblock und es gibt einen Header der zweiten Ebene.
## {language}, {bytes} bytes
{code}
So würde die Ausgabe aussehen, wenn sie in einen Markdown-Parser eingefügt wird.
{Sprache}, {Bytes} Bytes
{code}
Es wird davon ausgegangen, dass Variablen bereits als die Sprache ausgefüllt sind, in der Sie Ihren Code Golf-Eintrag codiert haben, die Anzahl der benötigten Bytes und der tatsächliche Code dafür.
Hier ist ein weiteres Beispiel für die Ausgabe als Code, diesmal mit ausgefüllten Variablen:
## JavaScript, 1337 bytes
document.getElementById("foo").innerHTML = bar;
Hier ist die Version als Blockquote:
JavaScript, 1337 Bytes
document.getElementById("foo").innerHTML = bar;
Bytes können aus Ihrem Code entfernt werden, wenn Sie den Text eines <p>
Elements in HTML anhand der ID festlegen result
, z. B. den folgenden JavaScript-Code:
document.getElementById("result").innerHTML = answer;
Stellen Sie sicher, dass dies auch <p id="result"></p>
im HTML-Abschnitt von JSFiddle enthalten ist, damit dies funktioniert.
Wertung
Wie bei allen Code-Golf- Fragen ist der Code, der die geringste Anzahl von Bytes verwendet, der beste.
quelle
{code}
jemals einen mehrzeiligen Code geben?language
,bytes
undcode
eingegeben werden oder ob dies eine quine Variante , wo diese Dinge sollen sich den Lösungscode entsprechen. (Und wenn ja, ob direkt oder indirekt das Lesen dieses Quellcodes erlaubt ist und ob eingebaute Quine erlaubt sind.)code
selbst Zeilenvorschübe enthalten kann?code
es nicht mehrzeilig sein wird, oder können wir nicht? Bitte geben Sie an, dass im HerausforderungstextAntworten:
05AB1E , 21 Bytes
Code:
Verwendet die CP-1252- Codierung. Probieren Sie es online aus! .
quelle
Java, 70 Bytes
Angenommen, es
b[0]
handelt sich um den Sprachnamen,b[1]
die Anzahl der Bytes undb[2]
den Code.Die Kompilierbarkeit kostet 9 Byte, was zu einem nicht eigenständigen 79-Byte-Programm führt:
Das entsprechende monolithische Programm ist 103 Byte lang:
Das monolithische arbeitet mit Befehlszeilenargumenten, wobei diese genau wie das nicht eigenständige Programm angenommen werden:
Java (Lambda-Ausdruck),
5648 BytesDies ist ein
java.util.function.Function<String[], String>
.Keines dieser Programme / Funktionen verarbeitet mehrzeilige Zeichenfolgen. Dazu einfach ersetzen
b[2]
undA[2]
durchb[2].replace("\n","\n ")
undA[2].replace("\n","\n ")
- dabei 23 Bytes hinzufügen.quelle
\t
die 4 Leerzeichen nach den beiden Zeilenumbrüchen nicht verwenden oder etwas anderes ersetzen?\t
und nicht 4 Leerzeichen?b->
.V , 24 Bytes
Beachten Sie, dass am Ende ein Leerzeichen steht.
Dieses Programm geht davon aus, dass{code}
es sich nicht um mehrere Zeilen handelt.Op hat klargestellt, dass "Code" eine mehrzeilige Zeichenfolge sein kann. Diese 24-Byte- Version funktioniert:
Da dies ein nicht druckbares Zeichen enthält, ist hier die lesbare Version:
Wo
<esc>
ist der wörtliche Fluchtcharakter, z0x1B
.quelle
Python 3.5,
4033 Bytes:( -7 Bytes dank einiger Klarstellungen von Mego )
Eine anonyme Lambda-Funktion, die Eingaben als Positionsargumente im Format verwendet
<function name>(String, Number, String)
und eine mehrzeilige Zeichenfolge ausgibt.Probieren Sie es online aus! (Ideone)
quelle
*f
und dentuple
Aufruf beenden.TypeError: not enough arguments for format string
immer dann bekomme, wenn ich es so laufen lasse .#
und dem löschen%
.#
und dem Lambda wird benötigt, denke ich.JavaScript (ES6), 56 Byte
Zum Lachen gibt es hier eine Antwort, die sich für mich selbst formatiert:
JavaScript (ES6), 68 Byte
Drucken Sie das Ergebnis von
f()
.quelle
(ES6)
. (Warum hat sich Cᴏɴᴏʀ O'Bʀɪᴇɴ nur die Mühe gemacht, die Länge zu ändern?)C #,
4038 BytesC # Lambda, wobei Ein- und Ausgabe Zeichenfolgen sind.
C #, 59 Bytes
Mit der Behandlung einer mehrzeiligen Antwort.
C #, 71 Bytes
Die 38-Byte-Lösung, die sich selbst druckt
Probieren Sie sie online aus
quelle
Mathematica, 40 Bytes
Anonyme Funktion. Nimmt die Sprache, die Anzahl der Bytes und das Programm als Eingabe und druckt den Text in STDOUT.
quelle
Jolf,
2422 BytesHier gibt es nicht viel zu erklären.
¦
bedeutet interpolierte Eingabe.Probieren Sie es hier aus! Die Ausgabe für die Eingabe im Link ist:
Eingabe ist wie folgt:
quelle
MATL ,
2827 Bytes1 Byte dank @ NinjaBearMonekys Vorschlag gespeichert
Probieren Sie es online aus!
Der Codeblock muss in einer einzelnen Zeile stehen.
Erläuterung
quelle
Common Lisp, 57 Bytes
Zum Spaß finden Sie hier unten einen Codeausschnitt, der einen Header für sich selbst druckt.
Common Lisp, 146 Bytes
quelle
Ruby, 63 Bytes
Probieren Sie es online aus: http://codepad.org/EIn0Gw9M
quelle
Hashmap , 29 Bytes.
(Ich habe diesen Beitrag mit dem Programm geschrieben, musste aber \ n in \\ n entkommen.)
Erläuterung:
quelle
CJam ,
2623 BytesVielen Dank an @NinjaBearMonkey für das Entfernen von 3 Bytes!
Der Codeblock muss in einer einzelnen Zeile stehen.
Probieren Sie es online aus!
Erläuterung
quelle
'#_Sl',Sl" bytes"N_S4*l
Pyke, 25 Bytes
Probieren Sie es hier aus!
Oder
Pyke, 0 Bytes
Probieren Sie es hier aus! - Klicken Sie auf die Schaltfläche Antwort kopieren;)
BEARBEITEN - Es ist nur eine Funktion der Website, es betrügt (oder zumindest würde ich es so betrachten), weil es niemals einen AST analysiert und das Webprogramm wahrscheinlich nicht als Teil der Sprache betrachtet wird, da es nicht viel mit der Sprache interagiert (obwohl der Pyke-Interpreter ausgeführt wird)
quelle
Perl 5, 35 Bytes
Bei einem vollständigen Programm werden Eingaben als Befehlszeilenargumente in umgekehrter Reihenfolge verwendet. Es erfordert
-M5.01
, was kostenlos ist.quelle
Emacs Lisp, 97 Bytes
Da es manchmal schwierig sein kann, Anführungszeichen zu umgehen und was nicht, ein Verwendungsbeispiel, das die Zeichenfolge in die Zwischenablage kopiert. (Region markieren und verwenden
M-:
)Emacs Lisp, 184 Bytes
quelle