Name der Programmiersprache ausgeben

45

Herausforderung:

Nehmen Sie in der Programmiersprache Ihrer Wahl keine Eingabe vor und geben Sie den Namen Ihrer Programmiersprache aus.

Fair genug, richtig?

Beschränkungen:

  • Sie können in Ihrem Code keine Zeichen verwenden, die im Namen Ihrer Programmiersprache enthalten sind. Wenn ich beispielsweise Batch verwende, darf ich in meinem Code nicht die Zeichen 'B' 'a' t '' c '' h 'verwenden. Beachten Sie, dass hierbei zwischen Groß- und Kleinschreibung unterschieden wird. Ich kann das Zeichen "b" weiterhin verwenden, da es sich von "B" unterscheidet.
  • Sie können eine "Junk-Ausgabe" vor oder nach dem Namen der Sprache erstellen
  • Die Versionsnummer zählt nicht zum Namen der Sprache. ZB kann ich die Nummer 3 im Code in meiner Antwort verwenden, wenn es in Python 3 ist
  • Die Ausgabe des Programmiersprachennamens unterscheidet nicht zwischen Groß- und Kleinschreibung.
  • Das brachiale Erzwingen aller möglichen Buchstabenkombinationen und die Hoffnung, dass Sie Ihren Sprachnamen erhalten, ist verboten.

Beispielausgaben: (Angenommen, meine Programmiersprache heißt Sprache) (✔ falls gültig, sonst ✖)

  • Language
  • Body language is a type of non-verbal communication in which physical behavior, as opposed to words, is used to express or convey information. Such behavior includes facial expressions, body posture, gestures, eye movement, touch and the use of space.
  • Language 2.0 - © 1078 AD some company
  • foobar

Dies ist daher gewinnt der kürzeste Code.

P. Ktinos
quelle
7
Die Regel zu Einschränkungen, bei denen zwischen Groß- und Kleinschreibung unterschieden wird, ist sehr unklar. Was ist die richtige Rechtschreibung: BASIC Basic oder Basic? Ich bin mir ziemlich sicher, dass ich Beispiele für alle drei finden kann.
Level River St
6
Obligatorisch "Nur wenn Ihr Code leer ist, aber eine Flagge wie --versionnicht erlaubt ist"?
Value Ink
87
Groß- und Kleinschreibung wird nicht berücksichtigt, während der Sprachenname gesperrt wird. Dies ermöglicht langweilige Lösungen, bei denen nur der Sprachenname in Groß- und Kleinschreibung ausgegeben wird.
Xnor
11
Sie haben einen Fehler gemacht, indem Sie Benutzern die Ausgabe von Junk-Daten ermöglicht haben. Sie müssen lediglich eine Sprache verwenden, in der der Compiler den Namen enthält, wenn ein Fehler auftritt. Es ist cool, aber nicht die Herausforderung, auf die ich gehofft habe
Lynob
3
Diese Frage muss wirklich spezifiziert werden, dass "Code" ausgeführt werden muss. Die meisten Sprachen werden ihren Namen im Verwendungsdump anzeigen, wenn Sie keinen Code eingeben. Beispielsweise wird "Java" oder "Groovy" in der Befehlszeile ohne Code den richtigen Namen anzeigen, wenn Sie jedoch Code übergeben (gerade). leer "code) wie in (groovy -e" ") erhalten Sie eine leere Antwort. Gleiches gilt für Kompilierungsprobleme. Die Verwendung des Compilers oder die Fehlerausgabe bedeuten nicht, dass Sie ein Programm geschrieben haben.
Bill K

Antworten:

67

Ausgänge zu STDERR

Die Ausgabe an STDERR ist jetzt standardmäßig auf + 33 / -21 eingestellt, was positiv, aber umstritten ist. Dies ist eine CW-Antwort zum Sammeln von Antworten , die nur einen Fehler in einer Sprache auslösen, in der Fehlermeldungen den Namen der Sprache enthalten.

Haskell, 1 Byte

1

Error:

Parse error: naked expression at top level
Perhaps you intended to use TemplateHaskell

Lua, 1 Byte

1

Error:

lua: .code.tio:1: syntax error near <eof>

(Dateiname ist unwichtig)

Batch, 1 Byte

~

Error:

'~' is not recognized as an internal or external command,
operable program or batch file.

tinylisp, 5 bytes

(c()1

Error:

Error: cannot cons to Int in tinylisp

R, 1 Byte

)

Error:

Error: unexpected ')' in ")"

Java-Bytecode, 0 Byte

Error:

Exception in thread "main" java.lang.ClassFormatError: Truncated class file

Groovy, 1 Byte

a

Beachten Sie, adass durch ein beliebiges anderes Zeichen ersetzt werden kann

Error:

groovy.lang.MissingPropertyException: No such property: a ...

MATLAB, 1 Byte

\

Error:

Error: Unexpected MATLAB operator.

PHP, 3 Bytes

<?=

Error:

PHP Parse error:  syntax error, unexpected end of file in /home/runner/.code.tio on line 1

CJam, 1 Byte

/

Error:

/
^
RuntimeException: The stack is empty
Java exception:
java.lang.RuntimeException: The stack is empty
    at net.aditsu.cjam.CJam.pop(CJam.java:75)
    at net.aditsu.cjam.Op2.run(Op2.java:10)
    at net.aditsu.cjam.Block.run(Block.java:304)
    at net.aditsu.cjam.CJam.runCode(CJam.java:210)
    at net.aditsu.cjam.CJam.main(CJam.java:240)

Zweig, 2 Bytes

Twig ist eine in PHP geschriebene Vorlagensprache. Es ist möglich, dass dies eine Mehrsprachigkeit ist.

{{
{%
{#

Error:

PHP Fatal error:  Uncaught exception 'Twig_Error_Syntax' with message [...] in [...][...]:n:
Stack trace:
#0 [...]

Die Meldung variiert je nach gewähltem Programm.

SILOS , 2 Bytes

x+

Probieren Sie es online! Ruft trivial undokumentiertes Verhalten auf. Silos ist der Name der Sprache.

Python, 6 Bytes

pYTHON

Da bei der Zeichenbeschränkung die Groß- und Kleinschreibung nicht beachtet wird und die Ausgabe nicht korrekt sein muss, ist dies eine gültige Antwort. Die Fehlermeldung, die es erzeugt, ist ungefähr so:

Traceback (most recent call last):
  File ".code.tio", line 1, in <module>
    pYTHON
NameError: name 'pYTHON' is not defined

Probieren Sie es online! (Ausgänge zum 'Debug' Tab)

JavaScript, 10 Bytes

jAVAsCRIPT

Dies erzeugt in allen Umgebungen die folgende oder eine ähnliche Fehlermeldung:

ReferenceError: jAVAsCRIPT is not defined

QBIC , 6 Bytes

?b(12)

In 6 Bytes können wir den aufgetretenen QBIC-Fehler eingeben: 9 auf dem Bildschirm, was auf einen Fehler außerhalb der Grenzen hinweist.

ForceLang, 2 Bytes

()

Fehler erzeugt:

Exception in thread "main" lang.exceptions.IllegalInvocationException: null is not a function.
    at lang.ForceLang.parse(ForceLang.java:99)
    at lang.ForceLang.main(ForceLang.java:129)

Pip, 5 Bytes

1~`[`

(Hinweis: Dies funktioniert in der aktuellen Version zum Zeitpunkt des Schreibens vom 0.17.09.01 . Keine Garantie, dass sich der Interpreter nicht ändert, um diesen Fehler in Zukunft anders zu behandeln.)

Versucht, einen Ausdruck mit einem syntaktisch ungültigen Muster abzugleichen. Der erzeugte Fehler sieht ungefähr so ​​aus:

Traceback (most recent call last):
  File "/opt/pip/pip.py", line 221, in <module>
    pip(interactive=False)
  File "/opt/pip/pip.py", line 206, in pip
    state.executeProgram(tree, args)
  File "/opt/pip/execution.py", line 56, in executeProgram
    returnVal = self.functionCall(mainFunction, cmdLineArgs)
  File "/opt/pip/execution.py", line 368, in functionCall
    returnVal = self.getRval(returnExpr)
  File "/opt/pip/execution.py", line 235, in getRval
    expr = self.evaluate(expr)
  File "/opt/pip/execution.py", line 213, in evaluate
    result = opFunction(*args)
  File "/opt/pip/execution.py", line 1134, in FIRSTMATCH
    matchObj = regex.asRegex().search(str(string))
  File "/opt/pip/ptypes.py", line 175, in asRegex
    self._compiled = re.compile(pyRegex)
  File "/usr/lib64/python3.6/re.py", line 233, in compile
    return _compile(pattern, flags)
  File "/usr/lib64/python3.6/re.py", line 301, in _compile
    p = sre_compile.compile(pattern, flags)
  File "/usr/lib64/python3.6/sre_compile.py", line 562, in compile
    p = sre_parse.parse(p, flags)
  File "/usr/lib64/python3.6/sre_parse.py", line 855, in parse
    p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, 0)
  File "/usr/lib64/python3.6/sre_parse.py", line 416, in _parse_sub
    not nested and not items))
  File "/usr/lib64/python3.6/sre_parse.py", line 765, in _parse
    p = _parse_sub(source, state, sub_verbose, nested + 1)
  File "/usr/lib64/python3.6/sre_parse.py", line 416, in _parse_sub
    not nested and not items))
  File "/usr/lib64/python3.6/sre_parse.py", line 523, in _parse
    source.tell() - here)
sre_constants.error: unterminated character set at position 8

Stax, 2 Bytes

0u

Error:

Stax runtime error: rational divide by zero

zh funktioniert auch.

Tinte, 1 Byte

~

~am Anfang einer Zeile steht, dass die Zeile eine auszuführende Anweisung und kein zu druckender Text ist. Ab welcher Version von inklecate TIO ~, stürzt der Interpreter mit folgendem Fehler ab , wenn nach dem nichts mehr angezeigt wird :

System.NullReferenceException: Object reference not set to an instance of an object
  at Ink.InkParser.LogicLine () [0x000b1] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.ParseObject (Ink.StringParser+ParseRule rule) [0x00012] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.OneOf (Ink.StringParser+ParseRule[] array) [0x0000a] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser.StatementAtLevel (Ink.InkParser+StatementLevel level) [0x00009] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser+<>c__DisplayClass134_0.<StatementsAtLevel>b__0 () [0x00000] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.ParseObject (Ink.StringParser+ParseRule rule) [0x00012] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.Interleave[T] (Ink.StringParser+ParseRule ruleA, Ink.StringParser+ParseRule ruleB, Ink.StringParser+ParseRule untilTerminator, System.Boolean flatten) [0x00040] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser.StatementsAtLevel (Ink.InkParser+StatementLevel level) [0x0004f] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser.Parse () [0x00000] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.Compiler.Compile () [0x00033] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.CommandLineTool..ctor (System.String[] args) [0x001a3] in <d64e27e7788347b2a5377c9e19bbdcab>:0 
  at Ink.CommandLineTool.Main (System.String[] args) [0x00000] in <d64e27e7788347b2a5377c9e19bbdcab>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
  at Ink.InkParser.LogicLine () [0x000b1] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.ParseObject (Ink.StringParser+ParseRule rule) [0x00012] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.OneOf (Ink.StringParser+ParseRule[] array) [0x0000a] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser.StatementAtLevel (Ink.InkParser+StatementLevel level) [0x00009] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser+<>c__DisplayClass134_0.<StatementsAtLevel>b__0 () [0x00000] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.ParseObject (Ink.StringParser+ParseRule rule) [0x00012] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.StringParser.Interleave[T] (Ink.StringParser+ParseRule ruleA, Ink.StringParser+ParseRule ruleB, Ink.StringParser+ParseRule untilTerminator, System.Boolean flatten) [0x00040] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser.StatementsAtLevel (Ink.InkParser+StatementLevel level) [0x0004f] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.InkParser.Parse () [0x00000] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.Compiler.Compile () [0x00033] in <b1e5e74f4ee842fc961297862cf23e07>:0 
  at Ink.CommandLineTool..ctor (System.String[] args) [0x001a3] in <d64e27e7788347b2a5377c9e19bbdcab>:0 
  at Ink.CommandLineTool.Main (System.String[] args) [0x00000] in <d64e27e7788347b2a5377c9e19bbdcab>:0 
DLosc
quelle
18
Ist die leere Zeichenfolge nicht im Namen der Sprache enthalten? : D
mbomb007
21
Die C und R sind c leve r .
DLosc
2
@ mbomb007 aber es ist kein Zeichen, daher ist es kein Zeichen, das im Namen der Sprache enthalten ist.
user253751
Die PHP-Version kann deaktiviert werden, wenn ich mich nicht irre. Die Verwendung von so etwas <??ist effektiver und kann nicht deaktiviert werden.
Ismael Miguel
10
Msgstr " Java - Bytecode, 0 Bytes ". Zum ersten Mal sehe ich, dass Java über ALLEN anderen erwähnten Sprachen triumphiert. :)
Kevin Cruijssen
49

SmileBASIC, 11 Bytes

sPsET.,1474

Entspricht SPSET 0,1474. Setzt das Sprite 0 auf die Definition 1474, bei der es sich um das SmileBASIC-Logo handelt.

Bildschirmfoto

12Me21
quelle
43

MATL , 1 Byte

Y

Die Ausgabe erfolgt über STDERR, was standardmäßig zulässig ist .

Die Ausgabe des Offline-Compilers lautet

Error using matl_parse (line 339)
MATL error while parsing: Y not recognized at position 1
Error in matl (line 234)
    S = matl_parse(s, useTags); 

Oder versuchen Sie es online! (erweitern Sie den Abschnitt "Debug").

Luis Mendo
quelle
6
Sollten Sie mit verschmelzen diese ?
wizzwizz4
@ wizzwizz4 Ich bin mir nicht sicher. Ich habe im Chat gefragt und diese beiden Antworten erhalten , daher ist es nicht wirklich klar
Luis Mendo
1
Ja, aber du?
Sagiksp
@sagiksp Alles, was einen Fehler auslöst, ist ausreichend, z. B. Xoder Z. Dies liegt daran X, dass Yoder ZPräfixe von zwei Zeichen Funktionsnamen sind, so dass ein Yan sich ungültig ist
Luis Mendo
37

R, 1 Byte:

T

Tist ein Alias ​​für die Konstante TRUE. Die Ausgabe für das Obige ist also:

[1] TRUE

Da Junk um den Namen herum zulässig ist, ist das "R" dort der Name der Sprache.

( Wie in einem anderen Kommentar erwähnt , funktionieren so ziemlich alle Buchstaben und Glyphen gleich gut, da sie die Meldung "Fehler: ..." auslösen, die "r" enthält.)

Konrad Rudolph
quelle
31

HTML, 24 bis 20 Bytes

&#72;&#84;&#77;&#76;


HTML, 16 Bytes

Wie von @Bob hervorgehoben , erkennen moderne Browser HTML-Entitäten ohne Semikolon, obwohl es sich um technisch ungültiges HTML handelt. Natürlich ist es perfekt für Code-Golf.

&#72&#84&#77&#76


HTML, 4 Bytes

Und natürlich die uninteressante Antwort.

html


Siehe auch meine CSS-Antwort .

darrylyeo
quelle
3
Sie können stattdessen mithilfe von dezimal vier Zeichen speichern: &#72;&#84;&#77;&#76;. Sie können weitere vier Zeichen speichern, indem Sie die Semikolons löschen, was zu einer technisch ungültigen HTML-Version führt (die jedoch in modernen Browsern noch funktioniert).
Bob
Warum zählt nicht HTML?
Hör auf, Monica am
1
@OrangeDog "Sie können kein Zeichen verwenden, das im Namen Ihrer Programmiersprache in Ihrem Code enthalten ist"
darrylyeo
Sollte htmlaber gültig sein, die Punktzahl um 12 Bytes reduzieren.
Christoph
3
@Clearer Das ist Code Golf! Wen interessiert es, ob W3C denkt, dass es gültig ist, solange es in mindestens einer Umgebung funktioniert?
Darrylyeo
25

Vim, 0 Bytes



Wenn Sie Vim starten, zeigt der Editor einen Begrüßungsbildschirm an, der folgendermaßen aussieht:

Vim Begrüßungsbildschirm

Sie können sehen , heißt es Vimhier:

Vim-Begrüßungsbildschirm mit hervorgehobenem Vim

Vorherige Antwort:

Vim, 1 Byte

<Ctrl-C>

In Vim 8 wird durch Drücken von Type :quit<Enter> to exit Vimin der letzten Zeile angezeigt . Ich bin mir nicht ganz sicher, ob das zählt.

Loovjo
quelle
1
Es sollte zählen. Strg-C hat tatsächlich einen eigenen ASCII-Code (Code 3, auch ETX oder "Ende des Textes" genannt). Dies ist also ein reines ASCII-Programm (wenn es nicht nur druckbares ASCII ist). Sie können dies verwenden, um zu beweisen, dass das Programm ein Byte lang ist und Text auf dem Bildschirm angezeigt wird.
4
Seit wann ist "vim" eine Programmiersprache?
DepressedDaniel
4
@DepressedDaniel vim ist eigentlich eine Skriptsprache, wenn Sie sich die Interna genauer ansehen. Alle diese ausgefallenen Tastenanschläge sind Anweisungen => Sie programmieren, wenn Sie Ihren Editor steuern.
bash0r
1
@DepressedDaniel ist es vollständig? Wenn nicht, sollte es nicht zählen.
Klarer
3
@dfeuer Ich stimme Ihnen zu, da ich diesen Kommentar vor mehr als 2 Jahren abgegeben habe.
Klarer
20

Python, 15 Bytes

Python 2 (15)

exec"\150elp()"

Es verkettet die Zeichenketten unter Verwendung des Oktals, 150das das Ergebnis ist hund ausführt "elp()". Dies gibt den help()Befehl aus, der besagt "Welcome to Python 3.5's help utility!", dass die Anforderungen erfüllt werden.

Python 3 (17)

exec("\150elp()")

Probieren Sie es online!

Caird Coinheringaahing
quelle
Nicht sicher, was helpzählt, es funktioniert nur in einer REPL-Umgebung.
Xnor
Es druckt immer noch die Python. Das ist alles was benötigt wird.
1
Egal, ich habe mich geirrt und es funktioniert wie ein Programm. Das tut mir leid.
25.
1
Sie haben den Buchstaben "p" verwendet
Matt
3
pist erlaubt aber Pnicht. Regel 1.
18

C, 0 Bytes.

/usr/lib/gcc/i586-linux-gnu/5/../../../i386-linux-gnu/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: error: ld returned 1 exit status

Probieren Sie es online!

Cees Timmerman
quelle
wo ist der name Oder beziehen Sie sich auf die c-Zeichen dort?
Hoffentlich
3
Dies sollte als C (gcc) markiert werden, da andere Compiler andere Meldungen haben.
Orlp
Meh, Ihre ckommen aus extrem implementierungsabhängigen Quellen. Wäre schöner gewesen, wenn Sie zumindest eine Meldung provoziert hätten, die cin irgendeiner Kesselplattenausgabe enthalten ist.
DepressedDaniel
1
@DepressedDaniel undefined referen c e 'main'
Loren Pechtel
@LorenPechtel Fair genug, habe das verpasst.
DepressedDaniel
17

Huh ?, 0 Bytes



(Nein, in diesem Codeblock ist nichts)

Die Sprache ist nach ihrer Ausgabe benannt, also ...

In der von mir überprüften Implementierung nimmt der Interpreter die Länge mod 8 jeder Zeile einer bestimmten Datei und wechselt je nach Ergebnis. Bei Null wird gedruckt Huh?. Da nachfolgende Zeilenumbrüche entfernt werden, können Sie auch eine 1-Byte ( \n) - Version erstellen .

Beachten Sie, dass keine Ausgabe an stderr oder caseswapping oder andere Tricks erfolgt. Es ist nur so, dass Huh? S sehr verwirrter Dolmetscher sich endlich als nützlich erwiesen hat.

Flambino
quelle
13

V , 2 Bytes

¬U

Probieren Sie es online!

Die offensichtliche Antwort lautet:

év~

Probieren Sie es online!

Welches ist "Fügen Sie den Buchstaben" V ", und Groß- / Kleinschreibung umschalten". Da Sie jedoch Junk-Ausgaben vor / nach dem Sprachnamen zulassen, funktioniert dies auch.

Der ¬Befehl benötigt zwei Zeichen zur Eingabe und fügt jedes ASCII-Zeichen dazwischen ein. Wenn Sie das zweite Zeichen nicht ÿangeben , wird automatisch der Standardwert (ASCII 0xff) verwendet. Daher fügt dieses Programm jedes Zeichen in der latin1-Codierung zwischen Uund ein ÿ.

DJMcMayhem
quelle
13

Brainfuck , 54 Bytes

+[[-<]-[->]<-]<.<<<<.>>>>-.<<-.<.>>.<<<+++.>>>---.<++.

Ausgänge brainfuck, vorausgesetzt, ein 8-Bit-Band ist links offen. Probieren Sie es online!

Teilbeträge gehen wie immer an @ primo's Hello, World! antworte .

Alternativen mit unterschiedlichem Gehäuse

Brainfuck (62 Bytes):

+[<-[-<]-[->]<<]<---.<<<<<<--.>>>-.<+.<.>---.<<+++.>>---.<---.

BrainFuck (68 Bytes):

-[[-<]->+[->]<-]<<.<<<<<--.>>+.<-.+++++.>>>------.<<<<+++.>>++.<---.
Sp3000
quelle
12

MATLAB, 3 Bytes

ver

Die Ausgabe ist wie folgt. Irrelevante Informationen wurden ersetzt durch [...]). Einige Teile der Ausgabe können sich je nach Version, installierten Toolboxen usw. ändern.

-----------------------------------------------------------------------------------------
MATLAB Version: 8.6.0.267246 (R2015b)
MATLAB License Number: [...]
Operating System: [...]
Java Version: Java 1.7.0_60-b19 with [...]
-----------------------------------------------------------------------------------------
MATLAB                                                Version 8.6         (R2015b)
Communications System Toolbox                         Version 6.1         (R2015b)
Curve Fitting Toolbox                                 Version 3.5.2       (R2015b)
[...]
Wavelet Toolbox                                       Version 4.15        (R2015b)
Luis Mendo
quelle
Verwendet av und einen e
Ihre Sprache ist Octave, so können Sie nicht verwenden , vund e.
JungHwan Min 25.01.17
6
Woops. Korrigiert durch Ändern der Sprache in Matlab (was ohnehin meine ursprüngliche Absicht war)
Luis Mendo
12

Python, 27 53 49 48 45 Bytes

-3 Bytes von @ wizzwizz4

exec eval('"IMpORT THIS".LOWER()'.swapcase())

Gibt den folgenden Text aus, in dessen erster Zeile "Python" steht.

The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
Wert Tinte
quelle
1
@ Arnauld behoben!
Value Ink
1
HELP()oder HELP(HELP)ist kürzer.
Gurupad Mamadapur
Es spielt keine Rolle, ob Sie die Groß- / Kleinschreibung der Importzeichenfolge vertauschen, da Sie sie ohnehin in Kleinbuchstaben umwandeln. -3 Bytes.
wizzwizz4
@ GurupadMamadapur die Antwort auf Python 3 hat es bereits behandelt und ist besser (ziemlich sicher, dass mein Code genau der gleiche ist), daher bin ich nicht in der Stimmung, ihn auch zu verwenden. Ich schätze, ich bleibe dabei import this.
Value Ink
@ValueInk Also gut.
Gurupad Mamadapur
12

Python 2 (1 Byte)

è

Ausgabe...:

Ausgabe

Max
quelle
Sind Sie sicher, dass dies nur 1 Byte ist?
Okx
1
Einverstanden. Es ist 2 Bytes in UTF-8
mbomb007
Der Schlüssel ist "Nicht-ASCII" - versuchen Sie es mit 0xa0(nbsp) oder einem anderen High-Byte, und Sie werden den gleichen Fehler erhalten!
John P
3
Dies ist 1 Byte in Win1252. Die Fehlermeldung zeigt, dass dies verwendet wird.
ATaco
10

> <> , 12 10 Bytes

"2,:o:2-o|

Dies wird so lange gedruckt, bis dem Interpreter der Platz ausgeht.

Probieren Sie es online!

12-Byte-Version für diejenigen, die eine saubere Ausgabe mögen. Empfohlen von Aaron (kein Fehler, 1 Ausgabe)

":3+:o$1+oo;
Blaugrüner Pelikan
quelle
Geniale Lösung!
Emigna
@Emigna - Danke, die endgültige Version war nach ein paar fehlgeschlagenen Golfspielen, aber ich mag sie sehr, weil sie mit dem Fehler> <> und Fisch druckt: D
Teal Pelican
Schön ! Hier ist eine 14-Byte-Version, die nur einmal gedruckt wird und keine Fehler ausgibt:"-o-o-o;_!\ _!
Aaron
@Aaron, wenn Sie die Bearbeitung überprüfen, hat die erste Version das um 12 gemacht. Ich mag es, wie sauber Ihre aussieht :)
Teal Pelican
Ich mag deine 12-Byte-Version (die 10-Byte-Version auch :)), ich denke, du hättest sie deiner Antwort zur Seite stellen sollen ("für diejenigen, die eine saubere Ausgabe mögen, [...]")!
Aaron
9

Java, 1 Byte

1

Die Ausgabe zu stderr ist:

Main.java:1: error: class, interface, or enum expected
1
^
1 error
Error: Could not find or load main class Main
Command exited with non-zero status 1
    Command being timed: "/srv/wrappers/java-openjdk"
    User time (seconds): 1.40
    System time (seconds): 0.80
    Percent of CPU this job got: 40%
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:05.40
    Average shared text size (kbytes): 0
    Average unshared data size (kbytes): 0
    Average stack size (kbytes): 0
    Average total size (kbytes): 0
    Maximum resident set size (kbytes): 44564
    Average resident set size (kbytes): 0
    Major (requiring I/O) page faults: 205
    Minor (reclaiming a frame) page faults: 11301
    Voluntary context switches: 2666
    Involuntary context switches: 1677
    Swaps: 0
    File system inputs: 78312
    File system outputs: 0
    Socket messages sent: 0
    Socket messages received: 0
    Signals delivered: 0
    Page size (bytes): 4096
    Exit status: 1 
t77
quelle
14
Dies wird aus der Kompilierung ausgegeben, anstatt das Programm auszuführen. Ich weiß nicht, ob dies standardmäßig erlaubt ist.
CAD97
2
Wenn Sie eine andere Dateierweiterung auswählen, wird nicht "Java" ausgegeben, oder? (Nicht sicher, ob das mit Java möglich ist)
Jonas Schäfer
11
Wenn Sie von Java zu Java-Bytecode wechseln, können Sie den Wert um ein Zeichen reduzieren. Beim Versuch, eine leere Klassendatei auszuführen, wird java.lang.ClassFormatError
user902383 am
2
Programme, die nach stderr ausgeben, sollten in diese Antwort bearbeitet werden .
mbomb007
8

CSS, 25 Bytes

:after{content:'\43\53\53

Beachten Sie, dass Stapelüberlauf-Snippets mit zusätzlichem Markup versehen werden, sodass "CSS" mehrmals angezeigt wird. Öffnen Sie eine .htmlDatei mit Inhalt

<style>:after{content:'\43\53\53

um das Ergebnis wie beabsichtigt zu sehen.

darrylyeo
quelle
7

Bash CLI, 9

printf $0

Wenn Sie ein aktuelles Skript und nicht nur einen Befehl in der interaktiven Befehlszeile wünschen, können Sie dies tun:

Bash, 13

printf $SHELL

Ausgänge /bin/bash

Digitales Trauma
quelle
1
echo $0sollte funktionieren
zimperliches Ossifrage
@squeamishossifrage Funktioniert in der Shell-Befehlszeile, gibt jedoch in einem Skript den Namen des Skripts aus.
Digitales Trauma
1
x $0funktioniert, vorausgesetzt, es gibt keine ausführbare Datei mit dem Namen x auf dem Pfad. In diesem Fall ersetzen Sie einen anderen Buchstaben, eine Ziffer oder ein nicht spezielles Zeichen.
Nigel222
2
'h' ist für dich ein illigaler Charakter und du verwendest ihn in echo
user902383 25.01.17
2
$'ec\x68o' $0heilt dieses Detail.
Handarbeit
7

C, 15 Bytes

Kompiliertes C auf einem Linux-Computer mit einem deutschen Gebietsschema:

main(){main();}

Es läuft auf einen Stapelüberlauf und druckt Speicherzugriffsfehlerauf stderr.

12431234123412341234123
quelle
............ :-D
Alfe
6

Pip , 8 Bytes

'IWR C80

Nimmt den Charakter Iund WRgibt ihn in Chr ( 80) aus PIP. Probieren Sie es online!

Wenn Sie das IGefühl haben, zu schummeln, sehen Sie sich zwei 9-Byte-Lösungen an , die keine der folgenden Funktionen verwenden PpIi:

z@8WRz@15
(z8+^707)

Beide geben aus pip. Mit dem zweiten bin ich besonders zufrieden:

    ^707   Split 707 into a list of characters        [7;0;7]
  8+       Add 8 to each one                          [15;8;15]
(z      )  Use list to index into lowercase alphabet  ["p";"i";"p"]
           By default, lists are printed without a separator

Für eine korrekte Großschreibung benötigen wir eine 10-Byte-Lösung :

'IWR C80Vx

Wie dies funktioniert, bleibt dem Leser als Übung überlassen. ; ^)

DLosc
quelle
6

C #, 60 67 Bytes

class P{static void Main(){System.\u0043onsole.Write("\x43\x23");}}
Bob
quelle
Ist dies tatsächlich Ihre Antwort oder hat ein Fehler Ihre Antwort durcheinander gebracht?
Auhmaan
@auhmaan Sorry, behoben . Ich habe es zunächst mit LINQPad getestet und dabei vergessen, dass es einige Standard-Namespace-Importe gibt.
Bob
Ich bezog mich auf \u0043und ebenso
auhmaan
1
@auhmaan Das ist beabsichtigt, weil ich es brauche, Consoleaber nicht Cgemäß den Fragenregeln verwenden kann . In C # können Sie Unicode-Escape-Sequenzen in Bezeichnern verwenden.
Bob
3
Ich bin mir sicher, dass Sie hierfür eine anonyme Methode verwenden können. Ich sehe keine Einschränkung, die ein vollständiges Programm erfordert, also könnten Sie dies tun_=>System.\u0043onsole.Write("\x43\x23");
TheLethalCoder
6

Brainfuck, 105 Bytes

--[----->+<]>----.[--->+<]>----.+++[->+++<]>++.++++++++.+++++.--------.-[--->+<]>--.+[->+++<]>+.++++++++.

Probieren Sie es hier online aus

TrojanByAccident
quelle
7
Nun, kein Problem in BrainFuck;)
devRicher
@ DevRicher gar nicht;)
TrojanByAccident
@ mbomb007 Ich verstehe.
TrojanByAccident
@ mbomb007 aktualisiert
TrojanByAccident
Gibt es einen Grund für das Übermaß ---in Ihrem Preisnachlass?
FlipTack
5

J, 2 Bytes

   a.


┌┬┐├┼┤└┴┘│─ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������

a. gibt das Alphabet der J-Sprache zurück - eine eingebaute Liste aller Bytes.

Mein Original: 4 Bytes

   %:_1
0j1

Das kommt mir einfach ziemlich cool vor. Die Quadratwurzel ( %:) von negativ 1 ( _1) ist i ( 0j1).

Däne
quelle
1
2 Bytes a.. Druckt das Alphabet, das offensichtlich "J" enthält. Auf jeden Fall nicht so cool: /
Bolce Bussiere
Muss Golf spielen. :-) Das heißt, ich bin an meine ursprüngliche Antwort angehängt.
Däne
5

BASIC (ZX Spectrum), 4 2 Bytes

durchgestrichen 4 ist immer noch regulär 4

2 Bytes dank @ShaunBebbers gespart.

Hinweis: Im ZX Spectrum-Zeichensatz werden diese Bytes als angezeigt

0 PRINT

Wenn Sie dies eingeben, analysiert das Spektrum zunächst eine optionale Zahl, gefolgt von einer Codezeile. Normalerweise ist die Zeilennummer, 1..9999die bewirkt, dass der Code zum gespeicherten Programm hinzugefügt wird. Wird jedoch keine Zeilennummer angegeben, wird der Code sofort ausgeführt. Leider bedeutet ein Fehler im Spektrum, dass eine Zeilennummer von Null für gar keine Zeilennummer verwechselt wird, aber dennoch versucht wird, die Null als Teil der Codezeile auszuführen, was illegal ist und somit den Fehler verursacht.

Die vorherige 4-Byte-Version generiert einen echten Fehler, anstatt sich auf einen Interpreter-Fehler zu verlassen:

õ°""

Hinweis: Im ZX Spectrum-Zeichensatz werden diese Bytes als angezeigt

PRINT VAL ""

welche Ausgänge

C Nonsense in BASIC, 0:1

weil die leere Zeichenfolge kein gültiger numerischer Ausdruck ist. (Ich hätte natürlich jede Anweisung verwenden können, die eine einzelne Ganzzahl enthält.) Wenn diese Antwort nicht akzeptabel ist, können Sie für 6 Bytes ein Programm schreiben, das aus einer einzelnen Zeile mit einem der Schlüsselwörter besteht, die keine Argumente akzeptieren, und dann POKEzum Ersetzen verwenden es mit einem ungültigen Schlüsselwort, dann versuchen Sie RUNdas Programm.

Neil
quelle
oder 0 REMerzeugt den gleichen Fehler
Shaun Bebbers
1
@ShaunBebbers Besteht das überhaupt die Syntaxprüfung?
Neil
ja, es funktioniert auf einem echten Spektrum.
Shaun Bebbers
4

C 24 20 Bytes (Clang 3.8.1)

Vielen Dank an @squeamish ossifrage, der mir geholfen hat, 4 Bytes zu sparen.

main(){putchar(67);}
Wade Tyler
quelle
Wie wäre es putchar(67);?
Squeamish Ossifrage
@squeamishossifrage yep, danke
Wade Tyler
Nur neugierig, aber printf('c')auch nicht gültig? Sie dürfen kein "C" in Großbuchstaben verwenden, aber Sie müssen Kleinbuchstaben eingeben, und die Groß- und Kleinschreibung wird nicht berücksichtigt.
Jocie
Klar, hört sich so an, @jocie, ist aber 67kürzer als 'c':-)
Cody Gray
1
@Jocie printfbraucht ein, char *also muss ich verwenden""
Wade Tyler
4

Perl 5, 36 Bytes (35 + 1 für -E)

$^X=~s/.+(.)(...)$/\U$1\E$2/;say$^X

Laufen Sie mit der -EFlagge.

$ perl -E 'say$^X=~s/.+(.)(...)$/\U$1\E$2/r'
Perl

Die Variable$^X ist der Pfad zu der ausführbaren Datei, die das aktuelle Programm ausführt. Da der Perl-Interpreter aufgerufen wird perl, müssen wir den ersten Buchstaben in Großbuchstaben schreiben. Aber die ucfirstFunktion enthält , ein r, was nicht erlaubt ist, so dass wir greifen müssen \Uund \E, was drehen Großbuchstaben-Konvertierung ein und aus.

Wir können den /rModifikator für nicht verwenden s///, um die geänderte Zeichenfolge zurückzugeben, da dies rnicht zulässig ist.

Es ist wichtig zu wissen , dass der Name der Programmiersprache Perl ist Perl , und der Name des Interpreten ist Perl mit einem Klein p. Es gibt kein PERL .

simbabque
quelle
Technisch gesehen , denke ich , perl -vdie Zwänge der Herausforderung erfüllt, aber das ist viel interessanter :) Obwohl es Annahmen macht , die auf allen Systemen nicht halten (zB $^Xist /home/foo/.plenv/versions/5.16.3/bin/perl5.16.3für mich, aber es könnte genauso gut sein , /home/foo/pythonwenn ich wie verdreht wurde , dass ).
ThisSuitIsBlackNot
@dies ist nicht sicher, ob das innerhalb der Regeln liegen würde. Sie sagen, wähle eine Sprache und mache Sachen. Ist perl -vaber nichts in Perl. Also denke ich, dass es nicht zählt. Aber ich denke, es gibt einfachere Wege. Ich denke, wir können die verschiedenen Systeme mit etwas mehr Regex-Magie verbessern.
Simbabque
Es gibt bereits eine Reihe von Null-Byte-Lösungen, die sich auf das Standardverhalten stützen (z. B. das Drucken von Versionsnummern). Nichts in den Regeln verbietet es ausdrücklich. Aber es ist definitiv langweilig und fühlt sich "betrogen" an.
ThisSuitIsBlackNot
Wenn man sich die Regeln noch einmal ansieht, könnte man das eigentlich nur übermäßig langweilig machen perl -E'say$^X'.
ThisSuitIsBlackNot
2
Wie wäre es -E'say`$^X -v`'? Das ist unbestreitbar ein Programm.
Hobbs
4

Viertens 5 Bytes

WORDS

Probieren Sie es online aus

Druckt eine Liste aller Wörter in der Sprache. Forthzufällig in der Liste (erstes Wort in Zeile 125), obwohl ich nicht weiß, was es tut.

mbomb007
quelle
4

R, 10 Bytes

citation()

Ausgänge:

Um R in Veröffentlichungen zu zitieren, verwenden Sie:

R-Kernteam (2016). R: Eine Sprache und Umgebung für statistisches Rechnen. R Stiftung für Statistisches Rechnen, Wien, Österreich. URL https://www.R-project.org/ .

Ein BibTeX-Eintrag für LaTeX-Benutzer ist

@Manual {,
title = {R: Eine Sprache und Umgebung für das statistische Rechnen},
author = {{R Core Team}},
organization = {R Foundation für das statistische Rechnen},
address = {Vienna, Austria},
year = {2016 },
url = { https://www.R-Project.org/ },
}

Wir haben viel Zeit und Mühe in die Erstellung von R investiert. Bitte zitieren Sie es, wenn Sie es für die Datenanalyse verwenden. Siehe auch 'citation ("pkgname")' zum Zitieren von R-Paketen.

Ziemlich ausführlich, nur um Rden Namen zu haben, richtig?

Aus @ djhurios Kommentar zu dieser Antwort mit R versiongeht auch der Trick.

Frédéric
quelle
3
"Die Ausgabe des Programmiersprachennamens unterscheidet nicht zwischen Groß- und Kleinschreibung." Warum also nicht einfach "r"? Oder abhängig vom strengen "Sie können" Junk-Ausgabe "vor oder nach dem Namen der Sprache haben." du könntest es auch einfach tun T.
Billywob
1
Nach dem Kommentar von @Billywob ist für die Ausgabe lediglich ein roder erforderlich. Ein Randerer Ansatz besteht darin, STDERR über einen Syntaxfehler auszugeben. )Ausgänge Error: unexpected ')' in ")", die eine enthält r.
Rturnbull
@ Billywob Ich stimme Ihrem Kommentar zu, ebenso wie dem von Rturnbull. Ich habe diese Antwort schnell früher geschrieben und hätte genau sagen sollen, dass ich es lustig finde, all diesen Müll auszugeben, nur um "R" erscheinen zu lassen, obwohl es den Code und die Antwort vergeblich lang macht. Außerdem ist es meines Wissens der kürzeste Weg, R dazu zu bringen, seinen Namen absichtlich zu schreiben.
Frédéric