Hallo Welt - aber alphabetisch


24

Diese Herausforderung klingt zu einfach, als dass sie noch nicht existiert. Lassen Sie mich wissen, ob es sich um eine doppelte handelt.

Die Aufgabe

Drucken Hello, world!

Die Regeln

Ihr Code muss in "Bytereihenfolge" sein. Dies bedeutet, dass jedes Zeichen / Byte einen höheren oder gleichen Bytewert hat als das vorhergehende Zeichen / Byte.

Ausnahmen von dieser Regel sind die Leerzeichen , die überall vorkommen können.

Die üblichen Schlupflöcher sind nicht erlaubt.

Bearbeiten : Das Auflösen von eingebauten Funktionen / Konstanten Hello, world!ist nicht zulässig.

Bearbeiten 2 : Die Ausgabe kann eine (nicht anonyme) Funktion sein, die die Zeichenfolge zurückgibt, ein Ausdruck, der in die Zeichenfolge aufgelöst wird, oder eine andere Möglichkeit, die Sie für zulässig halten.

Beispiel

HWist gültig: 0x48 (H) <= 0x57 (W)
printist ungültig: ist 0x72 (r) > 0x69 (i)
aber PRintgültig:0x50 (P) <= 0x52 (R) <= 0x69 (i) <= 0x6e (n) <= 0x74 (t)

Die Wertung

Dies ist , die Punktzahl entspricht also der Anzahl der Zeichen / Bytes. Je niedriger die Punktzahl, desto höher der Rang.


9
Es gibt viele Sprachen mit integrierten 1-Byte-Hello World-Funktionen. Einige drucken möglicherweise sogar Hello World für ein leeres Programm.
Dennis

2
Sehr eng verwandt. (Der Unterschied besteht darin, dass jede Zeile einzeln sortiert werden kann und in erster Linie nach der Anzahl der Zeilen
Martin Ender

@Dennis Aus diesem Grund wurde eine zusätzliche Regel hinzugefügt! Danke
Charlie

Noch trivial in 23, Headsecks und Lenguage, aber viel länger als ein paar Bytes.
Dennis

Standardausgabe wie ans = Hello, world!ist das in Ordnung? Andernfalls werden MATLAB nicht in der Lage sein , dies zu versuchen , ... disp, printfund evalsind alle in nicht-alphabetischer Reihenfolge.
Stewie Griffin

Antworten:


15

WhiteSpace, 146 Bytes

Da alle Leerzeichen überall vorkommen können, handelt es sich nur um das Golf-Hello-World-Programm. Da Whitespace hier nicht richtig angezeigt wird , nehmen Sie das folgende Programm und ersetzen Sie es .durch Leerzeichen, >Tabulatoren und ;Zeilenumbrüche.

...;..>>..>.>.;..>>>>;...>;...>>>;...>..;..>>.>..;..>>..>.>>;..>>>>>>>;...>..;...>;.;...>>>.;..>>...>>;;..;.;.;>.>;...>>.>.>>;>...>;..;.;;;..>;;;;

Hinweis

Ich habe das nicht golfen, LukStorms. Seine Antwort finden Sie hier .


Es ist nicht in Bytereihenfolge.
Matthew Roh

1
In der Tat, aber Whitespace musste nicht in Byte-Reihenfolge sein. es könnte überall auftauchen
Luke

3
Oh. Guter Missbrauch der Regeln dann
Matthew Roh

Genau. Das ist auch ein Grund, warum dies Community-Wiki ist.
Luke

15

Headsecks - 124 82 Zeichen

Vielen Dank an @MartinEnder für den Hinweis auf eine kleinere Hallo-Welt!

Headsecks scheint die richtige Sprache für den Job zu sein, da es sich um einen Brainfuck handelt, mit der Ausnahme, dass jeder Charakter Mod 8 benötigt.

 +19AISYchpx£¨°»ÁËÐÞàèðøĀĈĐĘĦīİĸŀňŐŘŠŨųŻƀƈƐƘƠƪƲƺǁǏǒǟǣǫǴǸȃȈȐțȤȫȴȼɀɋɓɜɠɫɱɹʃʉʑʞʣʩʴʺ˂ˏ

Sie können es hier ausprobieren: https://repl.it/G2I5/1 , dann hier: https://sange.fi/esoteric/brainfuck/impl/interp/i.html


Sie müssen einen tatsächlichen Headsecks-Interpreter bereitstellen, der diesen ausführt, und kein Python-Programm, das in BF konvertiert werden soll, und keinen BF-Interpreter. Da das Programm Nicht-ASCII enthält, muss der Interpreter, mit dem Sie eine Verknüpfung herstellen, Nicht-ASCII-Headsecks-Programme verarbeiten.
mbomb007

@ mbomb007 Früher gab es einen Dolmetscher, aber jetzt sind es 404s :( esolangs.org/wiki/Headsecks
Maltysen


@ mbomb007 dass man Unicode-Codepunkte handhabt, aber nicht die seltsamen Wrapping-Tricks, die die bf helloworld verwendet. Ich werde versuchen, nach einem anderen zu suchen, oder einfach zu meiner früheren, längeren Antwort zurückkehren.
Maltysen

Vielleicht sollte jemand eine Implementierung erstellen und Dennis diese auf TIO setzen lassen. Außerdem sollte jemand Esolangs bearbeiten. Ich wollte, aber idr meine Login-Daten.
mbomb007

13

CJam , 784 Bytes

"	 







































	 




































































	 











































































	 











































































	 














































































	 











	 	 






















































































	 














































































	 

















































































	 











































































	 



































































	 
"
"	
"')`er~

Probieren Sie es online!

Mit dieser Byteanzahl nichts zu gewinnen, aber es hat trotzdem Spaß gemacht, das zu machen.

Erläuterung

Die erste große Zeichenfolge codiert Hello, world!nur mit Leerzeichen. Jedes Zeichen wird einem Tabulator, einem Leerzeichen und einer Anzahl von Zeilenvorschüben zugeordnet, die dem Codepunkt minus 32 entsprechen.

Als nächstes wird die Zeichenfolge transliteriert, indem Tabulatoren durch 'und Zeilenvorschübe durch ersetzt werden ). Dies führt zu vielen Sequenzen eines literalen Leerzeichens, gefolgt von einer gewissen Anzahl von Inkrementen. Die Zeichenfolge wird mit ausgewertet ~, wobei die Leerzeichen verschoben und zu den richtigen Zeichen erhöht werden.

Der Stack wird implizit am Ende des Programms ausgegeben.


5
Ausgezeichnet, endlich eine wirklich clevere Antwort!
ETHproductions
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.