Problem
Wenn keine Eingabe erfolgt, schreiben Sie ein Programm oder eine Funktion, die den folgenden String ausgibt oder zurückgibt:
(<(<>(<>.(<>.<(<>.<>(<>.<>)<>.<>)>.<>).<>)<>)>)
Regeln
- Kürzeste Sendung gewinnt.
- Leerzeichen dürfen nachgestellt werden.
- Zeilenumbrüche sind erlaubt.
- Nicht verwendete Parameter für Funktionen sind zulässig.
code-golf
ascii-art
kolmogorov-complexity
LiefdeWen
quelle
quelle
(<>.<>)
:"(<" + "(<>" + "(<>." + ... + "(<>.<>)" + "<>.<>)" + ">.<>)" + ... + ">)"
Antworten:
SOGL V0.12 , 12 Bytes
Erläuterung:
Probieren Sie es hier aus!
quelle
05AB1E , 16 Bytes
Probieren Sie es online!
Erläuterung
quelle
Python 3 , 49 Bytes
Probieren Sie es online!
quelle
JS (Jsfuck), 10.614 Bytes
Hatte keinen Zugriff auf die Website, musste dies alles manuell herausfinden -.-
Erläuterung:
Die meisten Charaktere sind relativ einfach: Für die Klammern im Ausführen
Der Punkt wird erreicht, indem js eine wissenschaftliche Notationsnummer wie 1.1e + 21 erstellt und das Punktzeichen nach der Konvertierung in eine Zeichenfolge verwendet wird
Die eckigen Klammern sind schwieriger, wir müssen die Funktion ausführen, um eine kursive HTML-Objektzeichenfolge zu erstellen und die spitzen Klammern zu stehlen. Der Haupttrick dabei ist, das 'c' für das Wort kursiv zu erhalten, was den Aufbau einer anderen Funktion erfordert, um das c von 'function' zu nehmen.
Hier gibt es viel Raum für Verbesserungen, vor allem bei den Funktionen, mit denen die eckigen Klammern erstellt werden. Ich erinnere mich auch an einen einfacheren Weg, das Zeichen 'c' zu erhalten, wenn Kursivschrift besser ist, aber ich müsste meine alten Dateien durchsuchen, um es zu finden
quelle
C # (Mono) ,
5452 BytesProbieren Sie es online!
-2 Bytes dank Kevin Cruijssen
RIP C #
quelle
;
wird bei Lambda-Antworten nicht mitgezählt. Und()
kann durch ein einzelnes Zeichen (unbenutztesnull
Objekt) ersetzt werden. Relevanter Metapost für den zweiten.s=>
ist völlig in Ordnung.Netzhaut , 30 Bytes
Probieren Sie es online!
quelle
V ,
28272522 Bytes3? 4? Bytes dank @KritixiLithos
Probieren Sie es online!
quelle
hx
mit nur ersetzenX
.dkHxògJ
ist 1 Byte kürzer alsdkVHgJ0x
.Íî
Ding funktioniert auchi(<>.<>)òÙxlHÄ$xGòddÍî
für 23lX
fürxl
auch: DR , 42 Bytes
Ziemlich einfaches Programm, das die Funktionsweise der Teilzeichenfolge in R ausnutzt. So
substring('(<>.<>)',-4:6,2:12)
wird der folgende Vektor erzeugtcat
mit einem leeren Trennzeichen wird es im gewünschten Format an STDOUT ausgegeben.Probieren Sie es online!
quelle
Kohle,
1817 BytesProbieren Sie es online! Link ist eine ausführliche Version des Codes.
Verwendet den neuen Slice-Operator.quelle
TrumpScript, 70 Bytes
Ich weiß, es ist eine langweilige Lösung.
quelle
Brachylog , 14 Bytes
Probieren Sie es online!
quelle
ᶠ
in ein ändernᵘ
.C (gcc) ,
59-57Bytes24 Bytes weniger als eine einfacheputs()
Lösung. Es gibt sicherlich eine elegante rekursive Lösung, aber bisher wird der Overhead bei jedem Versuch zu groß.Probieren Sie es online!
quelle
Brainfuck,
198175167 BytesIch habe noch nie einen Codegolf gespielt, also ist dies mein erster. Feedback wird sehr geschätzt.
Probieren Sie es online!
Meiner Meinung nach habe ich die naheliegendste Lösung gewählt. Zuerst setze ich die Zellen 1-5 auf einen der Buchstaben "(). <>". Dann gehe ich einfach in die richtigen Zellen und gebe das Zeichen aus.
UPDATE: Ich habe die Reihenfolge geändert, in der die Zeichen auf dem "Band" erscheinen, wodurch das Programm viel kürzer und effizienter wird.
UPDATE 2: Ich habe meinen Post nach einer Weile noch einmal besucht und festgestellt, dass ich mit einer kürzeren Sequenz zum Einrichten der Zellen einige Bytes einsparen könnte.
quelle
JavaScript, 47 Bytes
Verwendet die gleiche Methode wie Rods Python- Antwort.
quelle
Mathematica 41 Bytes
quelle
Holzkohle , 20 Bytes
Probieren Sie es online!
Vielen Dank an Destructible Lemon für das Erkennen eines Musters (-4).
AST:
Was
‖B
tut , ist im Grunde visuell Leinwand palindromize.quelle
-a
.Print
s drin , nicht sicher, was du meinst.C (gcc) , 61 Bytes
Ich weiß, das ist lahm, aber es ist viel kürzer als meine andere Lösung ...
C (gcc) , 103 Bytes
Hier ist eine Version, in der ich versuche, etwas knifflig zu sein ...
C (GCC) ,
117115 BytesEine rekursive Version, die völlig knifflig ist ...
Probieren Sie es online!
quelle
Eine Menge leerer Blicke beobachtet Batman zu Ehren von Adam West ...
C # (.NET Core) , 393 Byte
Probieren Sie es online!
quelle
q , 29 Bytes
raze"(<>.<>)"{(y-5)_x}/:(!)11
-2 Bytes dank Streetster
EDIT zur Erklärung:
Sprache wird von rechts nach links interpretiert.
Wie es funktioniert
quelle
_x
für 1 Byte und änderntil 11
zu(!)11
noch 1 Byte Einsparung = 2 Bytes gespeichert :)Haskell ,
55-45BytesProbieren Sie es online!
Erste Haskell-Antwort auf die hartkodierte Lösung!
Erläuterung
Diese Antwort funktioniert durch Erstellen einer Liste von Funktionen, die auf die Zeichenfolge angewendet werden sollen
(<>.<>)
. Zuerst bauen wir links und zentrieren mitDas gibt uns alle Präfixe von Größe zwei bis sieben. Dann bauen wir das Richtige mit
Das gibt uns alle Suffixe von Größe sechs bis zwei.
Sobald wir die Liste der Funktionen haben, verwenden wir ein monadisches bind (
>>=
), das nurconcatMap
aber kürzer ist. Die Funktion, mit der wir concatmap verwenden($"(<>.<>)")
, wendet die Eingabe auf den String an(<>.<>)
.Das macht die Zeichenfolge.
quelle
Jelly , 22 Bytes
1 Byte dank Kritixi Lithos.
Probieren Sie es online!
quelle
µ
Java 8, 52 Bytes
Langweilig, aber es gibt keine Möglichkeit, dies in Java zu verkürzen. Das Initialisieren eines temporären Strings ist bereits 11 Bytes lang. (
String t="something";
), Undsubstring
ein paar Mal zu verwenden kostet sicherlich zu viele Bytes.Die kürzeste Alternative zu einer wörtlichen Rückgabe ist wahrscheinlich (58 Byte):
Probieren Sie es hier aus.
quelle
=>
), wenn Sie sie hinzufügen möchten.Python 2, 57 Bytes
Ich sage, es sieht aus wie eine Eulenbande, die hinter ihrem Anführer hervorschaut. Ich sage es nur.
quelle
MATL , 28 Bytes
Probieren Sie es online!
quelle
Brainfuck ,
245210 BytesGolfen im Gange.
Probieren Sie es online!
quelle
Haskell, 95 Bytes
Dies ist viel länger als die 49 Bytes, die für ein String-Literal mit der Ausgabe erforderlich sind, aber das Beste, was ich tun kann, um die Struktur zu nutzen . Wie üblich liebe ich Pfeile und
inits &&& tails
produziere ein Tupel der Liste der führenden Teilzeichenfolgen und der Liste der nachfolgenden Teilzeichenfolgen der Eingabe. Dann werden diese beiden Tupelelemente in einer Liste zusammengefasst, indem das Tupel an übergeben wird++
, und diese Liste wirdconcat
zu einer großen Zeichenfolge zusammengefasst. Die Aufrufetail
undinit
vermeiden das Duplizieren der(<>.<>)
mittleren (eine voninits
, die andere vontails
) und löschen die unerwünschten Klammern von Anfang bis Ende, wobei nur Teilzeichenfolgen der Länge 2 oder mehr berücksichtigt werden.quelle
Jelly , 18 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
C (Klirren) ,
6261 BytesDies beendet erst nach auf TIO Timing, weil das Schreiben in Standardeingabe nicht, aber es wird in einem Terminal beenden. Das Programm basiert auf einer bestimmten Auswertungsreihenfolge (undefiniertes Verhalten) und funktioniert nicht mit z. B. gcc.
Vielen Dank an @Steadybox für eine Idee, die ein Byte gespart hat!
Probieren Sie es online!
Nachprüfung
Alternative Version, 62 Bytes
Auf Kosten eines weiteren Bytes wird die Lösung viel portabler.
Probieren Sie es online!
quelle
(<
fehlt da.Python 2 , 55 Bytes
konnte nicht widerstehen, die aktuelle Python 2-Antwort zu schlagen
Probieren Sie es online!
quelle
Jelly , 19 Bytes
Probieren Sie es online!
quelle