Tugas Anda sederhana, tulis cuplikan kode tunggal yang ketika dieksekusi dalam satu bahasa hanya menghasilkan string 'abc'
dan ketika dieksekusi dalam bahasa lain hanya menghasilkan string 'cba'
. Program seharusnya tidak menerima input.
Ini adalah tantangan kode-golf .
ABC
alih-alihabc
cba
adalahabc
mundur; tautan , tautan , tautan , tautan , tautan , tautan , tautan , tautan , tautan'ABC'
dan'CBA'
ok, memimpin / membuntuti spasi / baris baru ok tapi harus sama untuk kedua outputJawaban:
05AB1E / Pyth , 5 byte
Coba 05AB1E online!
Coba Pyth online!
Ini juga berfungsi di Pyke, keluaran
cba
.Ini juga berfungsi di Recursiva, keluaran
cba
.sumber
MATLAB / Oktaf, 41 byte
Dalam MATLAB
randsample(2,2)
memberikan vektor 2 × 1, begitusize(...,2)
juga1
. Dengan demikianflip
diterapkan sepanjang dimensi pertama, yang merupakan singleton, sehingga string asli'abc'
ditampilkan:Dalam Oktaf
randsample(2,2)
memberikan vektor 1 × 2, begitusize(...,2)
juga2
. Dengan demikianflip
diterapkan sepanjang dimensi kedua, yaitu string diputar dari kiri ke kanan:sumber
version
varian yang kurang menarik .25 byte
Cobalah online! ( Python 2 )
Cobalah online! ( Python 3 )
sumber
exit
bukanprint
(meskipun ini berlaku untuk setiap jawaban seperti yang sekarang).exit
mencetak kestderr
, bukan? Tidak yakin apakah itu akan menjadi jawaban yang valid.Spasi dan Bash , 57 byte
Cobalah online!
sumber
-1 byte jika saya melakukan
==0
ke>0
tapi itu sudah jawaban lainPython 2 , 26 byte
Cobalah online!
Python 3 , 26 byte
Cobalah online!
1/2
memberi0
(floordiv) dengan Python 2 dan0.5
(truediv) dengan Python 3. Jadi,1/2==0
berikan 1 pada Python 3 dan 0 pada Python 2 (sebenarnya, boolean, tetapi itu hanya bilangan bulat), jadi'acbbca'[1::2] => 'cba'
diberikan untuk Python 3 dan'acbbca'[0::2] => 'abc'
diberikan untuk Python 2.sumber
Excel / Google Sheets,
41282724 BytesRumus lembar kerja anonim yang tidak mengambil input dan output
"ABC"
ke sel panggilan di Excel dan"CBA"
ke sel panggilan di Google SheetsDi Google Sheets,
M(...)
adalah alias untuk dan di-autoformed keT(...)
(kependekan dariText()
). Panggilan ini mengembalikan nilai teks dari variabel yang dikirimkan"CBA"
,."CBA"
tidak ditangkap sebagai kesalahan, jadi"CBA"
dikembalikan olehIfError(...,"ABC")
Di Excel, tidak ada
M(...)
fungsi, danM(...)
bukan alias dan karenanyaM("CBA")
mengembalikan rumus tidak ditemukan kesalahan#NAME?
,. Ini ditangkap olehIfError(...,"ABC")
, yang pada gilirannya kembali"ABC"
.Versi Sebelumnya, 27, 28, 41 Bytes
Lihat hasil edit untuk penjelasan
sumber
iserr
alih-alihiferror
dan 1 byte dengan menggunakan "SISTEM" alih-alih "NUMFILE":=IF(ISERR(INFO("SYSTEM")),"cba","abc")
CJam / 05AB1E , 6 byte
Cobalah online:
Cara kerjanya di CJam
Cara kerjanya di 05AB1E
sumber
Dengan permintaan maaf kepada @HyperNeutrino karena mencuri sebagian besar jawabannya (saya belum memiliki reputasi untuk berkomentar)
Python 2 , 25 byte
Cobalah online!
Python 3 , 25 byte
Cobalah online!
sumber
<1
btw.print
denganexit
(yang diizinkan oleh aturan kami) dan karenanya menghemat 1 byte.Vim / Notepad.exe, 10 byte
sumber
JavaScript (NodeJS) dan PHP, 46 byte
Mencetak
abc
dalam JS dancba
dalam PHP.Coba JS online!
Coba PHP online! (perhatikan bahwa TIO tidak menyembunyikan komentar HTML (
<!--
...-->
)sumber
<!--
ditafsirkan dalam Node?//
( sumber ). Bekerja seperti itu di browser JS juga.--> blah blah
adalah komentar yang valid dalam beberapa penerjemah JavaScript, Anda dapat menghapus//
Python / Befunge,
2018 byte2 byte disimpan berkat @karhell
Cobalah online! untuk Python
Python melihat
print("abc")
komentar.Cobalah online! untuk Befunge
Di luar, menghapus semua nops dan perintah yang tidak berguna melihat
"abc",,,@
yang menempatkana
,b
danc
pada stack dan kemudian mencetaknya (last in-first out).sumber
>:#,_@
oleh,,,@
#,,<@
bukanPython 2 dan Python 3, 42 byte
Cobalah online! (Python 2)
Cobalah online! (Python 3)
Kupikir aku akan mencoba sesuatu yang berbeda ...
sumber
try:long;print('abc')
try:cmp;print('abc')
Excel / Google Sheets, 28 byte
Terinspirasi oleh @TaylorScott, yang menggunakan fungsi yang hanya ada di Excel, saya menemukan fungsi yang lebih pendek yang hanya ada di Google Sheets. Nyaman, ini dirancang untuk mengembalikan string:
Bagaimana itu bekerja
Di Google Sheets,
join([arg1], arg2, arg3,...argk)
akan menggabungkan arg2 -> argk , opsional menggunakan pemisah yang ditentukan dalam arg1 . Dalam hal ini, berhasil mengembalikan "cba."Excel tidak memiliki
join
fungsi, jadiiferror
lihat masalah dan kembalikan "abc"sumber
CJam dan Gaia , 8 byte
Cobalah di CJam!
Cobalah di Gaia!
Penjelasan
Dalam kedua bahasa ini mendefinisikan daftar karakter.
Dalam CJam,
$
adalah semacam, jadi itu menjadiabc
.Di Gaia,
$
gabungkan daftar menjadi satu string, membericba
.sumber
Java 8 & C, 95 byte
Cobalah di Java 8 - menghasilkan "abc".
Coba di C - menghasilkan "cba".
Penjelasan:
Seperti yang Anda lihat dalam kode Java-highlighted di atas, baris pertama adalah komentar karena
//
, dan kode-C adalah komentar karena/* ... */
, menghasilkan:Tidak yakin cara mengaktifkan penyorotan C dengan benar, karena
lang-c
menghasilkan penyorotan yang sama dengan Java .. Tetapi//\
akan mengomentari baris berikutnya, yang merupakan kode Java, menghasilkan:sumber
Python 2 / Python 3, 28 byte
Dalam Python 2
int(1/2*4)-1
mengevaluasi-1
dan mencetakcba
. - TiODalam Python 3 itu mengevaluasi
1
cetakanabc
. - TiOsumber
C dan C ++,
115,78,58, 56 byte78 byte, terima kasih kepada penantang5 .
58 byte, terima kasih kepada aschepler .
56 byte, terima kasih kepada hvd
Cobalah - C ++!
Cobalah - C!
sumber
#ifdef
untuk membuat satu. 2) Anda dapat menghapus ruang di#include <stdio.h>
. 3) Anda dapat mengubahprintf("%s",
keputs(
. Cobalah online!sizeof('x')>1?"abc":"cba"
trik lama yang bagus .sizeof
Operan tidak membutuhkan tanda kurung, itu bukan fungsi.R / Cubix , 20 byte
R - Cobalah online!
Cubix - Cobalah online!
Untuk R,
cat("abc")
maka penyalahgunaan komentar tidak tahu malu. Untuk Cubix"abc"
Mendorong a, b ad c ke tumpukan)#
Menambah c, mendorong jumlah elemen dalam tumpukanu
Putar balik ke kanan;(
Hapus hitungan, Mengurangi co;o;o@
Output cba dan keluarMendorong nomor dalam tumpukan
sumber
cat(
benar-benar diabaikan oleh Cubix.Python 3 , 26 byte
Cobalah online!
Python 2 , 26 byte
Cobalah online!
Versi 25 byte
exit
sebagai gantinya , yang output ke STDERR sebagai gantinya.Ini pada dasarnya sama dengan
print('abc'[::[1,-1][1/2>0]])
, hanya saja golf.sumber
Python 2 dan Foo , 16 byte
Python 2
Coba Python 2 secara online!
Penjelasan
Foo
Coba Foo online!
Penjelasan
sumber
C (gcc) C ++ (g ++), 59 byte
sumber
Fission / > <> , 11 byte
Coba Fission Online
Dalam Fission, sebuah partikel dimulai
R
dan dicetakabc
.Coba> <> Online
Di> <>, IP dimulai di kiri atas.
!
lewati instruksi berikutnya, dan"abc"
tekan [a, b, c] pada stack.ooo
kemudian muncul dan mencetak tiga kali, membericba
.Kedua program berakhir pada
;
sumber
Ly / > <> ,
2019 byteCobalah dengan> <>!
Cobalah dengan Ly!
Bahasa-bahasa ini sangat mirip, karena Ly didasarkan dari> <>. Namun, Ly tidak memiliki eksekusi 2D dan interpretasi yang
&
berbeda, yang saya manfaatkan di sini.Kedua bahasa akan mulai dengan mendorong
abc
ke tumpukan.Untuk> <>,
&
instruksi memindahkan nilai ke sana kemari register. Dua berturut-turut akan mendorong nilai ke register dan kemudian langsung membawanya kembali, pada dasarnya NOP.Untuk Ly,
&
adalah pengubah yang membuat instruksi melakukan fungsinya pada seluruh tumpukan.o
berarti hal yang sama untuk kedua bahasa, tetapi karena itu diubah oleh&
di Ly, itu akan mencetak seluruh tumpukan, keluaranabc
. Di> <>, itu hanya akan menghasilkanc
(seperti yang dicetak dari atas ke bawah)v
adalah NOP di Ly, yang melompati dan langsung menuju;
, mengakhiri eksekusi. > <> Sebagai gantinya akan memperlakukannya sebagai pointer, mengirim IP ke bawah.Kemudian klik panah lain, mengirim IP kiri. Di sini, ia bertemu dua
o
tanda, keluaranb
dana
.EDIT: Menyimpan byte (dan memperbaiki> <> macet)
sumber
;
ke baris kedua. Ini juga memiliki keuntungan bahwa IP> <> tidak membungkus dan melewati baris kedua lagi, yang menyebabkan kesalahan."abc"&&ooo;
? Itu membuat Ly crash, tetapi hanya setelah mencetak "abc"."abc"&&o!;o<
untuk 1 byte tambahan, jika Anda ingin menghindari crash.Japt 2.0 / JavaScript,
1110 byteJapt 2.0 output
cba
Output JavaScript
abc
sumber
J / K (Kona) , 30 byte
TIO - J & TIO - K kona
sumber
05AB1E dan 2sable , 6 byte
Cetakan
ABC
(OP mengatakan itu diizinkan) di 05AB1E danCBA
2sable, menggunakan fakta bahwa 2sable mirip dengan 05AB1E tetapižR
ditambahkan ke 05AB1E setelah 2sable ditinggalkan.Cobalah online! (05AB1E)
Cobalah online! (2sable)
sumber
l
btw.PHP + JavaScript,
2928 byteIni berfungsi karena PHP mengartikan
'0'
(sama dengan bilangan bulat0
) sebagai falsy, sementara JavaScript menganggapnya hanyalah string kosong yang benar.Ini dimaksudkan untuk dijalankan dengan
-r
PHP. Dalam Javascript, cukup tempel di konsol.Terima kasih kepada @Justin Mariner karena telah menyelamatkan saya 1 byte!
sumber
"0"
sebagai ganti+![]
: itu menjadi0
(falsy) di PHP dan merupakan string (kebenaran) di JS.+![]?print(abc):alert('cba');
->"0"?alert('cba'):print(abc);
PHP / Brainf * ck, 31 byte
menggunakan
-r
bendera,PHP melihat
die(abc)
dan berkomentar, dan karena kompiler memaafkan, ia menampilkanabc
sebagai string sebagai ganti variabel kosong.Brainf * ck hanya melihat karakter instruksi, dan sisanya dilihat sebagai komentar.
Cobalah online! (PHP)
Cobalah online! (Brainf * ck)
sumber
-r
Julia dan Octave / Matlab, 27 byte
Dalam Oktaf, keduanya
'a'
dan"a"
mewakili string yang sama, oleh karena'a'=="a"
itu benar. Namun, dalam Julia,'a'
adalah karakter tunggal sedangkan"a"
string satu karakter. Di Julia,"cba"
adalah output.Versi tidak disatukan:
sumber
Perl / Ruby, 18 byte
Rubi
print
scba
seperti yang kita panggil.reverse
string.Cobalah online!
Perl
print
sabc
digabungkan dengan hasilreverse
yang secara default berfungsi$_
mana kosong dan tidak ada bedanya.Cobalah online!
sumber