Schreiben Sie in jeder Programmiersprache, die vor der Beantwortung dieser Frage existiert hat, ein Programm (keine Funktion), das die Zeichen Hello world!
gefolgt von einer neuen Zeile ausgibt. Ihr Programm:
- sollte kein Zeichen mehr als einmal verwenden (einschließlich Leerzeichen)
- sollte nur ASCII-Zeichen verwenden
- sollte keine eingebauten Bibliotheken verwenden
- sollte keine Eingabe erhalten (Benutzer, Datei, Dateiname, Systemvariable, Internet, irgendetwas)
- sollte nichts anderes ausgeben
Gewinner ist, wer nach 14 Tagen die meisten Stimmen hat und sich an die sechs Regeln hält.
Die sechste Regel lautet, dass Sie H9 +, HQ9 +, HQ9 + B, HQ9 ++, HQ9 + 2D, Hallo, Hallo +, Hallo ++, Hexisch, CHIQRSX9 + oder Fuge nicht verwenden können. Außerdem müssen alle Antworten, für die Implementierungen erforderlich sind, die neuer sind als diese Herausforderung, als nicht konkurrierend gekennzeichnet werden.
Haftungsausschluss: Diese Frage wurde mit der Annahme gestellt, dass Hallo Welt! mit begrenzten Wiederholungen verursachte keine Schäden an Ihrem Computer oder Ihrem Gehirn, während die Antworten ausgearbeitet wurden.
Antworten:
Perl 6 (
2928 Zeichen)Das war etwas nervig, aber ich habe es endlich geschafft, ein Programm für diese Aufgabe zu erstellen. Vielen Dank an die großartige # perl6-Community , die mir bei dieser Aufgabe geholfen hat. Ich habe zwei Stunden gebraucht, hoffe es gefällt dir. Die Ausgabe entspricht vollständig der Spezifikation, einschließlich eines Zeilenumbruchs.
Es gibt vier interessante Marken.
say
Dies gibt das Argument mit der neuen Zeile am Ende aus. Die neue Zeile nach dem Befehl selbst wird als Leerzeichenersatz benötigt.
Q[@A`DO world!]
Dies ist die erste Zeichenfolge.
Q[]
ist für rohe Strings (wier""
in Python). In diesem Fall kann ein beliebiges Trennzeichen (oder ein Paar davon) verwendet werden[]
. In diesem Fall verwende ich dies für Anführungszeichen. Ich benötige kein unformatiertes Zeichenfolgenverhalten.~|
Dies ist ein stringweiser (
~
) bitweiser oder (|
) Operator.<HeLhg>
<>
ist ein Listenliteral, das eine durch Leerzeichen getrennte Liste von Elementen verwendet. In diesem Fall hat es ein Element und als Skalar gibt es eine Zeichenfolge.quelle
Perl 5 mit
-M5.010
29 BytesProbieren Sie es online!
Ich habe viel Wissen gesammelt, seit ich das erste Mal versucht habe. Immer noch nicht so kurz wie die anderen Antworten, aber das Beste, was ich finden kann!
quelle
w
.Perl 5.10+: 24 Zeichen
OK, ich denke das ist so kurz wie es in Perl geht.
Führen Sie mit
perl -M5.010
(oder nurperl -E
) aus, um die Perl 5.10+say
-Funktion zu aktivieren .quelle
ll
...Golfscript
4233Ich könnte genauso gut Golf spielen, wenn ich bedenke, dass ich einen Teil des Codes und alle Daten im selben Block unterbringen musste, ohne die beiden voneinander abzugrenzen. Ich denke, das ist ein ziemlich kurzes Ergebnis. Im Gegensatz zu meiner ersten Eingabe ist der Blockcode jetzt ein vollständig integrierter Teil der Daten.
{1
Beginnen Sie also nicht nur mit dem Block und legen Sie einen1
auf den Stapel, sondern definieren auch die DatenH
usw. Die Array-Erstellung enthält jetzt die leere Eingabezeichenfolge, was bedeutet, dass ich den Anfang nicht zuschneiden muss, da nur ein Zeichen zwischen der leeren Zeichenfolge und demH
steht. Dieses Zeichen wird abgeschnitten, wenn ich jedes zweite Zeichen nehme, und das leere Zeichenfolge wird schließlich als nichts ausgegeben.Online-Demo: http://golfscript.apphb.com/?c=ezF3WiRRZWleQWsgM2gtKXVsbXNvZ3I3fS5gKl0yJW4r
Definiert einen Codeblock. Erstellt eine Kopie des Codeblocks und konvertiert ihn in einen String. Verwendet den Codeblock, um die Zeichenfolge zu durchlaufen. Bei jeder Iteration erstellt der Code eine Kopie des vorherigen Zeichenwerts, xor es mit dem aktuellen Zeichenwert und subtrahiert 1. In der resultierenden Zeichenfolge werden dann die ersten 6 Zeichen entfernt und jedes zweite Zeichen entfernt. Zum Schluss wird ein Zeilenvorschub angehängt.
"r iFNGDJUHv98oIMgtplbh4m" ist nur zwei nicht deklarierte Variablen, sie tun nichts, aber sie sind sorgfältig konstruiert, um das gewünschte Ergebnis zu erzielen.
Online-Demo: http://golfscript.apphb.com/?c=W3sxJF4ociBpRk5HREpVSHY5OG9JTWd0cGxiaDRtfS5gXCpdNj4yJW4rquelle
Vim 7.3, 18 Tastenanschläge
Kopiert die Zeichenfolge
Hello world
aus dieser Hilfedatei , die in Never- Versionen von Vim leider entfernt wurde.quelle
<Esc>
zählen Tastenanschläge wie und Kombinationen mit der Strg-Taste als ein ByteBefunge-98 ,
3431 BytesProbieren Sie es online!
Verwendet einige verschiedene Methoden, um doppelte Zeichen zu vermeiden.
Erstens verwenden wir ein Wrapping-String-Literal, um die Verwendung von zwei
"
s zu vermeiden . Dies fügt "Welt!" auf den Stapel.Wenn wir in der zweiten Zeile nach links gehen, addieren wir 9 zu dem Extra
f
, umo
das "Hallo" zu machen. Wirg
eten das Zeichen aus Zelle 5,0 (l
) und duplizieren es dann. Mit dem'
wird der Brief abgerufene
. Multiplizieren Sie 9 mit 8, um 72, den ASCII-Wert von, zu erhaltenH
. Wir drucken dann alles mitck,
, und drehen die Richtung mit>
, um,
die neue Zeile (a
) erneut zu drucken .quelle
+
undd
.Elixier , 37 Bytes
Probieren Sie es online!
Ich kann nicht garantieren, dass dies 2014 geklappt hätte, als diese Herausforderung veröffentlicht wurde, und Elixir noch vor Version 1.0 war (und somit, ob es formal "konkurriert", aber wenn ich mir die Versionshinweise anschaue, denke ich, sollte es so sein OKAY). Wie auch immer, ich bin froh, dass ich endlich eine gültige Lösung für diese Aufgabe gefunden habe, die eine andere konventionelle Allzwecksprache als Perl verwendet!
Komplettlösung
quelle
Stax (nicht konkurrierend), 8 Bytes
Probieren Sie es online!
Nur ein komprimiertes String-Literal. Zum Glück lässt Stax mich ohne das schließende Backtick los.
quelle