Twoje zadanie jest proste: napisz pojedynczy fragment kodu, który po uruchomieniu w jednym języku wyprowadza tylko ciąg znaków, 'abc'
a po uruchomieniu w innym języku - tylko ciąg znaków 'cba'
. Program nie powinien pobierać danych wejściowych.
To wyzwanie dla golfa .
ABC
zamiastabc
cba
jest onabc
zacofany; link , link , link , link , link , link , link , link , link'ABC'
i'CBA'
jest w porządku, wiodące / końcowe białe znaki / nowe linie są w porządku, ale muszą być takie same dla obu wynikówOdpowiedzi:
05AB1E / Pyth , 5 bajtów
Wypróbuj 05AB1E online!
Wypróbuj Pyth online!
Działa to również w Pyke, generując
cba
.Działa to również w Recursiva, generując
cba
.źródło
MATLAB / oktawa, 41 bajtów
W MATLAB
randsample(2,2)
daje wektor 2 × 1, taksize(...,2)
jest1
. Wflip
ten sposób jest stosowany wzdłuż pierwszego wymiaru, który jest singletonem, więc'abc'
wyświetlany jest oryginalny ciąg :W Octave
randsample(2,2)
daje wektor 1 × 2, tak teżsize(...,2)
jest2
. Wflip
ten sposób jest stosowany wzdłuż drugiego wymiaru, to znaczy łańcuch jest odwracany od lewej do prawej:źródło
version
wariantu.25 bajtów
Wypróbuj online! ( Python 2 )
Wypróbuj online! ( Python 3 )
źródło
exit
zamiastprint
(chociaż dotyczy to każdej odpowiedzi od teraz).exit
drukuje dostderr
, prawda? Nie jestem pewien, czy byłaby to prawidłowa odpowiedź.Biała spacja i Bash , 57 bajtów
Wypróbuj online!
źródło
-1 bajt, jeśli robię
==0
w>0
ale to już inna odpowiedźPython 2 , 26 bajtów
Wypróbuj online!
Python 3 , 26 bajtów
Wypróbuj online!
1/2
daje0
(floordiv) w Pythonie 2 i0.5
(truediv) w Pythonie 3. Zatem1/2==0
daje 1 w Pythonie 3 i 0 w Pythonie 2 (właściwie booleany, ale to tylko liczby całkowite), więc'acbbca'[1::2] => 'cba'
jest podane dla Pythona 3 i'acbbca'[0::2] => 'abc'
jest podane dla Pythona 2)źródło
Excel / Arkusze Google,
41282724 bajtówAnonimowa formuła arkusza roboczego, która nie pobiera danych wejściowych i wyjściowych
"ABC"
do komórki wywołującej w programie Excel i"CBA"
komórki wywołującej w Arkuszach GoogleW Arkuszach Google
M(...)
jest aliasem i automatycznie formatowany doT(...)
(skrót odText()
). To wywołanie zwraca wartość tekstową zmiennej upływu"CBA"
."CBA"
nie jest wychwytywany jako błąd, więc"CBA"
jest zwracany przezIfError(...,"ABC")
W programie Excel, nie ma
M(...)
funkcji, aM(...)
nie jest aliasem i dlategoM("CBA")
zwraca formuły nie znaleziono błąd,#NAME?
. Zostaje to złapaneIfError(...,"ABC")
, co z kolei powraca"ABC"
.Poprzednie wersje, 27, 28, 41 bajtów
Wyjaśnienia znajdziesz w edycjach
źródło
iserr
zamiastiferror
i 1 bajt, używając „SYSTEM” zamiast „NUMFILE”:=IF(ISERR(INFO("SYSTEM")),"cba","abc")
CJam / 05AB1E , 6 bajtów
Wypróbuj online:
Jak to działa w CJam
Jak to działa w 05AB1E
źródło
Z przeprosinami @HyperNeutrino za kradzież większości jego odpowiedzi (nie mam jeszcze reputacji, aby komentować)
Python 2 , 25 bajtów
Wypróbuj online!
Python 3 , 25 bajtów
Wypróbuj online!
źródło
<1
okazji.print
zexit
(co jest dozwolone przez naszych zasad), a zatem oszczędzania 1 bajt.Vim / Notepad.exe, 10 bajtów
źródło
JavaScript (NodeJS) i PHP, 46 bajtów
Drukuje
abc
w JS icba
PHP.Wypróbuj JS online!
Wypróbuj PHP online! (zauważ, że TIO nie ukrywa komentarzy HTML (
<!--
...-->
)źródło
<!--
interpretowana jest w węźle?//
( źródło ). Działa to również w przeglądarce JS.--> blah blah
jest poprawnym komentarzem w niektórych interpreterach JavaScript, możesz po prostu usunąć//
Python / Befunge,
2018 bajtów2 bajty zapisane dzięki @karhell
Wypróbuj online! dla Pythona
Python widzi
print("abc")
wtedy komentarz.Wypróbuj online! dla Befunge
Befunge, usuwając wszystkie nops i bezużyteczne polecenia, widzi,
"abc",,,@
które kładziea
,b
ic
na stosie, a następnie drukuje je (ostatnie wejście - pierwsze wyjście).źródło
>:#,_@
przez,,,@
#,,<@
zamiastPython 2 i Python 3, 42 bajty
Wypróbuj online! (Python 2)
Wypróbuj online! (Python 3)
Myślałem, że spróbuję czegoś innego ...
źródło
try:long;print('abc')
try:cmp;print('abc')
Excel / Arkusze Google, 28 bajtów
Zainspirowany przez @TaylorScott, który użył funkcji, która istnieje tylko w programie Excel, znalazłem jeszcze krótszą funkcję, która istnieje tylko w Arkuszach Google. Dogodnie jest przeznaczony do zwracania ciągów:
Jak to działa
W Arkuszach Google
join([arg1], arg2, arg3,...argk)
połączy arg2 -> argk , opcjonalnie używając separatora określonego w arg1 . W takim przypadku z powodzeniem zwraca „cba”.Excel nie ma żadnej
join
funkcji, więciferror
widzi problem i zwraca „abc”źródło
CJam i Gaia , 8 bajtów
Wypróbuj w CJam!
Wypróbuj w Gaia!
Wyjaśnienie
W obu językach określa to listę znaków.
W CJam
$
jest sort, więc staje sięabc
.W Gaia
$
łączy listę w jeden ciąg, dająccba
.źródło
Java 8 i C, 95 bajtów
Wypróbuj w Javie 8 - uzyskując „abc”.
Wypróbuj w C - uzyskując „cba”.
Wyjaśnienie:
Jak widać w powyższym kodzie wyróżnionym w Javie, pierwszy wiersz jest komentarzem
//
, a kod C jest komentarzem/* ... */
, w wyniku czego:Nie jestem pewien, jak poprawnie włączyć podświetlanie C, ponieważ
lang-c
powoduje to takie samo podświetlanie jak Java. Ale//\
skomentuje następny wiersz, którym jest kod Java, co powoduje:źródło
Python 2 / Python 3, 28 bajtów
W Python 2
int(1/2*4)-1
ocenia-1
i tak drukujecba
. - TiOW Pythonie 3 to ocenia,
1
więc drukujeabc
. - TiOźródło
C i C ++,
115,78,58, 56 bajtów78 bajtów, dzięki Challenger5 .
58 bajtów dzięki ascheplerowi .
56 bajtów, dzięki hvd
Wypróbuj - C ++!
Spróbuj - C!
źródło
#ifdef
s, aby utworzyć jeden. 2) Możesz usunąć spację#include <stdio.h>
. 3) Możesz zmienićprintf("%s",
naputs(
. Wypróbuj online!sizeof('x')>1?"abc":"cba"
sztuczka.sizeof
Argument nie potrzebuje nawiasów, nie jest funkcją.R / Cubix , 20 bajtów
R - Wypróbuj online!
Cubix - Wypróbuj online!
Dla R,
cat("abc")
a następnie bezwstydne nadużycie komentarzy. Dla Cubix"abc"
Wpycha a, b ad c na stos)#
Zwiększ c, pcha liczbę elementów na stosieu
Zawróć w prawo;(
Usuń liczbę, Zmniejsz co;o;o@
Wyjście cba i wyjścieWpycha liczbę na stos
źródło
cat(
jest całkowicie ignorowany przez Cubix.Python 3 , 26 bajtów
Wypróbuj online!
Python 2 , 26 bajtów
Wypróbuj online!
Wersja 25-bajtowa z
exit
zamiast , która tego wysyła do STDERR.Jest to w zasadzie to samo, co
print('abc'[::[1,-1][1/2>0]])
po prostu gra w golfa.źródło
Python 2 i Foo , 16 bajtów
Python 2
Wypróbuj Python 2 online!
Wyjaśnienie
bla
Wypróbuj Foo online!
Wyjaśnienie
źródło
C (gcc) C ++ (g ++), 59 bajtów
źródło
Rozszczepienie / > <> , 11 bajtów
Wypróbuj Fission Online
W rozszczepieniu cząstka zaczyna się
R
i drukujeabc
.Spróbuj> <> Online
W> <> adres IP zaczyna się w lewym górnym rogu.
!
pomija następną instrukcję i"abc"
wypycha [a, b, c] na stos.ooo
następnie wyskakuje i drukuje trzy razy, dająccba
.Oba programy kończą się na
;
źródło
Ly / > <> ,
2019 bajtówWypróbuj z> <>!
Wypróbuj z Ly!
Te języki są bardzo podobne, ponieważ Ly opiera się na> <>. Ly nie ma jednak wykonania 2D i interpretuje
&
inaczej, co wykorzystałem tutaj.Oba języki zaczną się od pchania
abc
na stos.Dla> <>,
&
instrukcja przenosi wartości do iz powrotem do rejestru. Dwa z rzędu wypchną wartość do rejestru, a następnie cofną ją, zasadniczo NOP.Dla Ly
&
jest modyfikatorem, który sprawia, że instrukcja wykonuje swoją funkcję na całym stosie.o
oznacza to samo dla obu języków, ale ponieważ został zmodyfikowany przez&
Ly, wydrukuje cały stos, wyprowadzającabc
. W> <> będzie tylko wyświetlaćc
(ponieważ jest drukowany od góry do dołu)v
to NOP w Ly, który pomija go i przechodzi od razu do;
końca, kończąc wykonanie. > <> potraktuje to jako wskaźnik, wysyłając adres IP w dół.Następnie uderza inną strzałkę, wysyłając adres IP w lewo. Tutaj spełnia dwa
o
znaki, wyjściowyb
ia
.EDYCJA: Zapisano bajt (i naprawiono awarię> <>)
źródło
;
do drugiej linii. Ma to również tę zaletę, że adres IP> <> nie zawija się i nie przechodzi ponownie przez drugą linię, co powoduje błąd."abc"&&ooo;
? Powoduje awarię Ly, ale dopiero po wydrukowaniu „abc”."abc"&&o!;o<
1 dodatkowy bajt, jeśli chcesz uniknąć awarii.Japt 2.0 / JavaScript,
1110 bajtówWyjścia Japt 2.0
cba
Dane wyjściowe JavaScript
abc
źródło
J / K (Kona) , 30 bajtów
TIO - J & TIO - K kona
źródło
05AB1E i 2sable , 6 bajtów
Wydruki
ABC
(OP powiedział, że jest dozwolone) w 05AB1E iCBA
2sable, wykorzystując fakt, że 2sable był podobny do 05AB1E, aležR
został dodany do 05AB1E po porzuceniu 2sable.Wypróbuj online! (05AB1E)
Wypróbuj online! (2sable)
źródło
l
btw.PHP + JavaScript,
2928 bajtówDziała to, ponieważ PHP interpretuje
'0'
(tak samo jak liczba całkowita0
) jako fałsz, podczas gdy JavaScript zakłada, że jest to po prostu niepusty ciąg znaków, który jest prawdziwy.To ma działać
-r
na PHP. W Javascript po prostu wklej go w konsoli.Dzięki @Justin Mariner za uratowanie mnie 1 bajt!
źródło
"0"
zamiast+![]
: staje się0
(falsy) w PHP i jest ciągiem (prawda) w JS.+![]?print(abc):alert('cba');
->"0"?alert('cba'):print(abc);
PHP / Brainf * ck, 31 bajtów
za pomocą
-r
flagi,PHP widzi
die(abc)
i komentarz, a ponieważ kompilator wybacza, wypisujeabc
jako ciąg zamiast pustej zmiennej.Brainf * ck widzi tylko znaki instrukcji, a reszta jest postrzegana jako komentarze.
Wypróbuj online! (PHP)
Wypróbuj online! (Brainf * ck)
źródło
-r
Julia i Octave / Matlab, 27 bajtów
Dlatego w Octave oba
'a'
i"a"
reprezentują ten sam ciąg, dlatego'a'=="a"
jest prawdą. Jednak w Julii'a'
jest to pojedynczy znak, podczas gdy"a"
jest to ciąg jednego znaku. W Julii"cba"
jest wyjście.Wersja bez golfa:
źródło
Perl / Ruby, 18 bajtów
Rubin
print
scba
jak wzywamy.reverse
ciąg.Wypróbuj online!
Perl
print
sabc
połączone, w wynikureverse
czego domyślnie działa, na$_
którym jest pusty i dlatego nie ma znaczenia.Wypróbuj online!
źródło