Ihre Aufgabe ist einfach: Schreiben Sie einen einzelnen Codeausschnitt, der bei Ausführung in einer Sprache nur die Zeichenfolge 'abc'
und bei Ausführung in einer anderen Sprache nur die Zeichenfolge ausgibt 'cba'
. Das Programm sollte keine Eingabe annehmen.
Dies ist eine Code-Golf- Herausforderung.
ABC
stattabc
cba
esabc
rückwärts ist. Link , Link , Link , Link , Link , Link , Link , Link , Link'ABC'
und'CBA'
ist ok, führende / nachfolgende Leerzeichen / Zeilenumbrüche ok, muss aber für beide Ausgaben gleich seinAntworten:
05AB1E / Pyth , 5 Bytes
Versuchen Sie 05AB1E online!
Probieren Sie Pyth online aus!
Dies funktioniert auch in Pyke und gibt aus
cba
.Dies funktioniert auch in Recursiva und gibt aus
cba
.quelle
MATLAB / Octave, 41 Bytes
In MATLAB
randsample(2,2)
einen 2 × 1 - Vektor gibt, sosize(...,2)
ist1
. Wirdflip
also entlang der ersten Dimension, die ein Singleton ist, angewendet, wird die ursprüngliche Zeichenfolge'abc'
angezeigt:In Octave
randsample(2,2)
einen 1 × 2 - Vektor gibt, sosize(...,2)
ist2
. Wirdflip
also entlang der zweiten Dimension angewendet, dh die Zeichenfolge wird von links nach rechts gespiegelt:quelle
version
Variante verwenden.25 Bytes
Probieren Sie es online! ( Python 2 )
Probieren Sie es online! ( Python 3 )
quelle
exit
anstelle vonprint
(obwohl dies ab sofort für jede Antwort gilt).exit
druckt nachstderr
, nicht wahr? Ich bin mir nicht sicher, ob es eine gültige Antwort wäre.Whitespace und Bash , 57 Bytes
Probieren Sie es online!
quelle
-1 Byte , wenn ich machen
==0
in ,>0
aber das ist schon eine andere AntwortPython 2 , 26 Bytes
Probieren Sie es online!
Python 3 , 26 Bytes
Probieren Sie es online!
1/2
ergibt0
(floordiv) in Python 2 und0.5
(truediv) in Python 3. So1/2==0
gibt 1 in Python 3 und 0 in Python 2 (eigentlich booleans, aber das sind nur ganze Zahlen), so'acbbca'[1::2] => 'cba'
für Python 3 gegeben und'acbbca'[0::2] => 'abc'
wird für Python gegeben 2.quelle
Excel / Google Sheets,
41282724 BytesAnonyme Arbeitsblattformel, die keine Ein- und Ausgaben
"ABC"
in die aufrufende Zelle in Excel und"CBA"
in die aufrufende Zelle in Google Sheets übernimmtIn Google Sheets
M(...)
ist ein Alias für und automatisch formatiertT(...)
(Kurzform fürText()
). Dieser Aufruf gibt den Textwert der übergebenen Variablen zurück"CBA"
."CBA"
wird nicht als Fehler abgefangen, wird also"CBA"
von zurückgegebenIfError(...,"ABC")
In Excel gibt es keine
M(...)
Funktion undM(...)
kein Alias. Daher wirdM("CBA")
der Fehler "Formel nicht gefunden" zurückgegeben#NAME?
. Dies wird von gefangenIfError(...,"ABC")
, was wiederum zurückkehrt"ABC"
.Frühere Versionen, 27, 28, 41 Bytes
Erläuterungen finden Sie unter Änderungen
quelle
iserr
anstelle voniferror
und 1 Byte mit "SYSTEM" anstelle von "NUMFILE" speichern:=IF(ISERR(INFO("SYSTEM")),"cba","abc")
CJam / 05AB1E , 6 Bytes
Probieren Sie es online aus:
Wie es in CJam funktioniert
So funktioniert es in 05AB1E
quelle
Ich entschuldige mich bei @HyperNeutrino, dass er den größten Teil seiner Antwort gestohlen hat (ich habe noch nicht den Ruf, einen Kommentar abzugeben)
Python 2 , 25 Bytes
Probieren Sie es online!
Python 3 , 25 Bytes
Probieren Sie es online!
quelle
<1
übrigens.print
mitexit
(was erlaubt nach unseren Regeln) und damit speichern 1 Byte.Vim / Notepad.exe, 10 Bytes
quelle
JavaScript (NodeJS) und PHP, 46 Byte
Druckt
abc
in JS undcba
in PHP.Probieren Sie das JS online!
Probieren Sie das PHP online! (beachten Sie, dass TIO nicht die HTML - Kommentare verstecken (
<!--
...-->
)quelle
<!--
in Node interpretiert?//
( Quelle ). Funktioniert auch in Browser JS so.--> blah blah
ist ein gültiger Kommentar in einigen JavaScript-Interpreter, Sie können nur entfernen//
Python / Befunge,
20 bis18 Bytes2 Bytes gespart dank @karhell
Probieren Sie es online! für Python
Python sieht
print("abc")
dann einen Kommentar.Probieren Sie es online! für Befunge
Befunge, alle nops und nutzlose Befehle Entfernen sieht ,
"abc",,,@
welchen Putsa
,b
undc
auf dem Stapel und dann druckt sie (zuletzt in - first out).quelle
>:#,_@
,,,@
#,,<@
stattdessen einen weiteren mitPython 2 und Python 3, 42 Bytes
Probieren Sie es online! (Python 2)
Probieren Sie es online! (Python 3)
Ich dachte, ich würde etwas anderes ausprobieren ...
quelle
try:long;print('abc')
try:cmp;print('abc')
Excel / Google Sheets, 28 Byte
Inspiriert von @TaylorScott, der eine Funktion verwendete, die nur in Excel vorhanden ist, fand ich eine noch kürzere Funktion, die nur in Google Sheets vorhanden ist. Zweckmäßigerweise ist es so konzipiert, dass Zeichenfolgen zurückgegeben werden:
Wie es funktioniert
join([arg1], arg2, arg3,...argk)
Verkettet in Google Sheets arg2 -> argk , optional mit dem in angegebenen Trennzeichen arg1 Trennzeichen . In diesem Fall wird "cba" erfolgreich zurückgegeben.Excel hat keine
join
Funktion,iferror
sieht also ein Problem und gibt "abc" zurückquelle
CJam und Gaia , 8 Bytes
Probieren Sie es in CJam!
Probieren Sie es in Gaia!
Erläuterung
In beiden Sprachen definiert dies eine Liste von Zeichen.
In CJam
$
ist sort, so wird esabc
.Verbindet in Gaia
$
die Liste zu einer Zeichenfolge und gibtcba
.quelle
Java 8 & C, 95 Bytes
Versuchen Sie es in Java 8 - was zu "abc" führt.
Versuchen Sie es in C - was zu "cba" führt.
Erläuterung:
Wie Sie im obigen Java-hervorgehobenen Code sehen können, ist die erste Zeile ein Kommentar aufgrund
//
und der C-Code ist ein Kommentar aufgrund/* ... */
, was zu Folgendem führt:Ich bin mir nicht sicher, wie ich C-Hervorhebung richtig aktivieren soll, da dies
lang-c
zu der gleichen Hervorhebung wie bei Java führt. Aber//\
ich werde die nächste Zeile, den Java-Code, auskommentieren, was zur Folge hat:quelle
Python 2 / Python 3, 28 Bytes
In Python 2 wird
int(1/2*4)-1
ausgewertet-1
und so gedrucktcba
. - TiOIn Python 3 wertet es
1
so aus, dass es drucktabc
. - TiOquelle
C und C ++,
115,78,58, 56 Bytes78 Bytes dank challenger5 .
58 bytes dank aschepler .
56 bytes dank hvd
Probieren Sie es aus - C ++!
Probieren Sie es aus - C!
quelle
#ifdef
s zu einem einzigen zusammenfalten. 2) Sie können das Leerzeichen in entfernen#include <stdio.h>
. 3) Sie können ändernprintf("%s",
zuputs(
. Probieren Sie es online!sizeof('x')>1?"abc":"cba"
Trick.sizeof
Der Operand von benötigt keine Klammern, er ist keine Funktion.R / Cubix , 20 Bytes
R - Online ausprobieren!
Cubix - Probieren Sie es online!
Für R
cat("abc")
dann schamloser Missbrauch von Kommentaren. Für Cubix"abc"
Schiebt a, b und c auf den Stapel)#
Inkrementiert das c, drückt die Anzahl der Elemente im Stapelu
Wende nach rechts;(
Entfernen Sie die Zählung, Dekrementieren Sie die co;o;o@
Cba ausgeben und beendenSchiebt die Nummer im Stapel auf
quelle
cat(
Cubix völlig ignoriert.Python 3 , 26 Bytes
Probieren Sie es online!
Python 2 , 26 Bytes
Probieren Sie es online!
25-Byte-Version mit
exit
statt , die stattdessen an STDERR ausgibt.Dies ist im Grunde das gleiche wie
print('abc'[::[1,-1][1/2>0]])
, nur dass es Golf ist.quelle
Python 2 und Foo , 16 Bytes
Python 2
Probieren Sie Python 2 online aus!
Erläuterung
Foo
Probieren Sie Foo online aus!
Erläuterung
quelle
C (gcc) C ++ (g ++), 59 Bytes
quelle
Spaltung / > <> , 11 Bytes
Probieren Sie Fission Online aus
In Fission beginnt ein Partikel bei
R
und drucktabc
.Versuchen Sie es mit> <> Online
In> <> beginnt die IP oben links.
!
Überspringt den nächsten Befehl und"abc"
drückt [a, b, c] auf den Stapel.ooo
dann knallt und druckt dreimal und gibtcba
.Beide Programme enden um
;
quelle
Ly / > <> ,
20 bis19 BytesProbieren Sie es mit> <>!
Probieren Sie es mit Ly!
Diese Sprachen sind sehr ähnlich, da Ly auf> <> basiert. Ly hat jedoch keine 2D-Ausführung und Interpretationen
&
anders, was ich hier ausgenutzt habe.Beide Sprachen werden durch Drücken von gestartet
abc
auf den Stapel .Für> <> die
&
Befehl Werte zum Register und zurück. Zwei in einer Reihe drücken einen Wert in das Register und nehmen ihn dann direkt zurück, im Wesentlichen eine NOP.Für Ly,
&
handelt es sich um einen Modifikator, mit dem eine Anweisung ihre Funktion für den gesamten Stapel ausführt.o
bedeutet für beide Sprachen dasselbe, aber da es von&
in Ly geändert wurde , wird der gesamte Stapel gedruckt und ausgegebenabc
. In> <> wird nur ausgegebenc
(wie von oben nach unten gedruckt)v
ist ein NOP in Ly, der es überspringt und direkt zum;
Ende der Ausführung übergeht . > <> behandelt es stattdessen als Zeiger und sendet die IP nach unten.Es trifft dann einen weiteren Pfeil und sendet die IP nach links. Hier trifft es auf zwei
o
Zeichen, ausgebenb
unda
.BEARBEITEN: Byte gespeichert (und Absturz behoben)
quelle
;
in die zweite Zeile wechseln. Dies hat auch den Vorteil, dass die> <> IP nicht umbrochen wird und die zweite Zeile erneut durchläuft, was zu einem Fehler führt."abc"&&ooo;
? Es bringt Ly zum Absturz, aber erst nach dem Drucken von "abc"."abc"&&o!;o<
für 1 zusätzliches Byte, wenn Sie Abstürze vermeiden möchten.Japt 2.0 / JavaScript,
11 bis10 ByteJapt 2.0- Ausgänge
cba
JavaScript- Ausgaben
abc
quelle
J / K (Kona) , 30 Bytes
TIO-J & TIO-K kona
quelle
05AB1E und 2sable , 6 Bytes
Drucke
ABC
(OP sagte, dass es erlaubt war) in 05AB1E undCBA
in 2sable, unter Verwendung der Tatsache, dass 2sable 05AB1E ähnlich war, aber dasžR
zu 05AB1E hinzugefügt wurde, nachdem 2sable abgebrochen wurde.Probieren Sie es online! (05AB1E)
Probieren Sie es online! (2sable)
quelle
l
Btw anhängen .PHP + JavaScript,
2928 BytesDies funktioniert, weil PHP
'0'
(genau wie die ganze Zahl0
) als falsch interpretiert, während JavaScript davon ausgeht, dass es sich lediglich um eine nicht leere Zeichenfolge handelt, die der Wahrheit entspricht.Dies soll mit
-r
PHP laufen . Fügen Sie es in Javascript einfach in die Konsole ein.Vielen Dank an @Justin Mariner für das Speichern von 1 Byte!
quelle
"0"
anstelle von verwenden+![]
: es wird0
(falsch) in PHP und ist eine Zeichenfolge (wahr) in JS.+![]?print(abc):alert('cba');
->"0"?alert('cba'):print(abc);
PHP / Brainf * ck, 31 Bytes
unter Verwendung der
-r
Flagge,PHP sieht
die(abc)
und einen Kommentar, und da der Compiler verzeiht, gibt esabc
als Zeichenfolge anstelle einer leeren Variablen.Brainf * ck sieht nur die Anweisungszeichen, der Rest wird als Kommentar angesehen.
Probieren Sie es online! (PHP)
Probieren Sie es online! (Brainf * ck)
quelle
-r
Julia und Octave / Matlab, 27 Bytes
In Octave repräsentieren daher beide
'a'
und"a"
dieselbe Zeichenfolge'a'=="a"
wahr. In Julia'a'
ist dies jedoch ein einzelnes Zeichen, während"a"
es sich um eine Zeichenfolge mit einem Zeichen handelt. In Julia,"cba"
ist die Ausgabe.Ungolfed-Version:
quelle
Perl / Ruby, 18 Bytes
Rubin
print
scba
wie wir.reverse
auf der Schnur anrufen .Probieren Sie es online!
Perl
print
sabc
verkettet mit dem Ergebnis,reverse
welches standardmäßig$_
leer ist und somit keinen Unterschied macht.Probieren Sie es online!
quelle