Ваша задача проста: написать один фрагмент кода, который при выполнении на одном языке выводит только строку, 'abc'
а при выполнении на другом языке - только строку 'cba'
. Программа не должна принимать никаких данных.
Это вызов для игры в гольф .
Ваша задача проста: написать один фрагмент кода, который при выполнении на одном языке выводит только строку, 'abc'
а при выполнении на другом языке - только строку 'cba'
. Программа не должна принимать никаких данных.
Это вызов для игры в гольф .
ABC
вместоabc
cba
вabc
обратном направлении; ссылка , ссылка , ссылка , ссылка , ссылка , ссылка , ссылка , ссылка , ссылка , ссылка'ABC'
и'CBA'
все в порядке, начальные / конечные пробелы / переводы строк в порядке, но они должны быть одинаковыми для обоих выходных данныхОтветы:
05AB1E / Pyth , 5 байт
Попробуйте 05AB1E онлайн!
Попробуйте Pyth онлайн!
Это также работает в Pyke, выводя
cba
.Это также работает в Recursiva, вывод
cba
.источник
MATLAB / Octave, 41 байт
В MATLAB
randsample(2,2)
дает вектор 2 × 1, так чтоsize(...,2)
есть1
. Таким образомflip
, применяется к первому измерению, которое является одиночным, поэтому'abc'
отображается исходная строка :В Октаве
randsample(2,2)
дает 1 × 2 вектор, так чтоsize(...,2)
есть2
. Таким образомflip
, применяется вдоль второго измерения, то есть строка переворачивается слева направо:источник
version
вариант.25 байт
Попробуйте онлайн! ( Python 2 )
Попробуйте онлайн! ( Python 3 )
источник
exit
вместоprint
(хотя это относится к каждому ответу на данный момент).exit
печатаетstderr
, не так ли? Не уверен, что это будет правильный ответ.Пробел и Баш , 57 байт
Попробуйте онлайн!
источник
-1 байт, если я сделаю
==0
в>0
но это уже другой ответPython 2 , 26 байт
Попробуйте онлайн!
Python 3 , 26 байт
Попробуйте онлайн!
1/2
дает0
(floordiv) в Python 2 и0.5
(truediv) в Python 3. Таким образом,1/2==0
дает 1 в Python 3 и 0 в Python 2 (фактически, логические, но это просто целые числа), поэтому'acbbca'[1::2] => 'cba'
дается для Python 3 и'acbbca'[0::2] => 'abc'
дается для Python 2.источник
Excel / Google Sheets,
41282724 байтаФормула анонимного рабочего листа, которая не требует ввода и вывода
"ABC"
в вызывающую ячейку в Excel и"CBA"
в вызывающую ячейку в Google SheetsВ Google Sheets
M(...)
- псевдоним для и автоформатированиеT(...)
(сокращениеText()
). Этот вызов возвращает текстовое значение переданной переменной"CBA"
."CBA"
не выдается как ошибка, поэтому"CBA"
возвращаетсяIfError(...,"ABC")
В Excel нет
M(...)
функции,M(...)
она не является псевдонимом и, следовательно,M("CBA")
возвращает ошибку формулы не найдена#NAME?
. Это пойманIfError(...,"ABC")
, который в свою очередь возвращается"ABC"
.Предыдущие версии, 27, 28, 41 байт
Смотрите правки для объяснений
источник
iserr
вместо,iferror
и 1 байт, используя «SYSTEM» вместо «NUMFILE»:=IF(ISERR(INFO("SYSTEM")),"cba","abc")
CJam / 05AB1E , 6 байтов
Попробуйте онлайн:
Как это работает в CJam
Как это работает в 05AB1E
источник
С извинениями @HyperNeutrino за кражу большей части его ответа (у меня пока нет репутации, чтобы комментировать)
Python 2 , 25 байт
Попробуйте онлайн!
Python 3 , 25 байт
Попробуйте онлайн!
источник
<1
кстати.print
наexit
(что разрешено нашими правилами) и, следовательно, сохранить 1 байт.Vim / Notepad.exe, 10 байт
источник
JavaScript (NodeJS) и PHP, 46 байт
Печать
abc
в JS иcba
PHP.Попробуйте JS онлайн!
Попробуйте PHP онлайн! (обратите внимание, что TIO не скрывает комментарии HTML (
<!--
...-->
)источник
<!--
интерпретируется в Node?//
( источник ). Так же работает и в браузере JS.--> blah blah
допустимый комментарий в некотором интерпретаторе JavaScript, вы можете просто удалить//
Python / Befunge,
2018 байт2 байта сохранены благодаря @karhell
Попробуйте онлайн! для Python
Python видит
print("abc")
тогда комментарий.Попробуйте онлайн! для Befunge
Befunge, удаляя все nops и бесполезные команды, видит,
"abc",,,@
что помещаетa
,b
иc
в стек, а затем печатает их (последний пришел - первый вышел).источник
>:#,_@
на,,,@
#,,<@
Вместо этого сохраните еще однуPython 2 и Python 3, 42 байта
Попробуйте онлайн! (Python 2)
Попробуйте онлайн! (Python 3)
Я думал, что попробую что-то другое ...
источник
try:long;print('abc')
try:cmp;print('abc')
Excel / Google Sheets, 28 байт
Вдохновленный @TaylorScott, который использовал функцию, которая существует только в Excel, я нашел еще более короткую функцию, которая существует только в Google Sheets. Удобно, он предназначен для возврата строк:
Как это работает
В Google Таблицах,
join([arg1], arg2, arg3,...argk)
будет конкатенация арг2 -> argk , необязательно с использованием сепаратора , указанным в arg1 . В этом случае он успешно возвращает «cba».Excel не имеет
join
функции, поэтомуiferror
видит проблему и возвращает «abc»источник
CJam и Gaia , 8 байтов
Попробуйте это в CJam!
Попробуйте это в Gaia!
объяснение
На обоих языках это определяет список символов.
В CJam
$
есть сортировка, поэтому она становитсяabc
.В Gaia
$
объединяет список в одну строку, даваяcba
.источник
Java 8 & C, 95 байт
Попробуйте это в Java 8 - в результате "abc".
Попробуйте это в C - в результате "cba".
Объяснение:
Как вы можете видеть в выделенном Java-коде выше, первая строка представляет собой комментарий из-за
//
, а C-код - из-за комментария/* ... */
, что приводит к:Не уверен, как правильно включить C-подсветку, потому что
lang-c
приводит к той же подсветке, что и Java. Но//\
закомментирует следующую строку, которая является Java-кодом, в результате:источник
Python 2 / Python 3, 28 байт
В Python 2
int(1/2*4)-1
принимает значение-1
и поэтому отпечаткиcba
. - TiOВ Python 3 он оценивает
1
так печатаетabc
. - TiOисточник
C и C ++,
115,78,58, 56 байтов78 байт, благодаря запросу5 .
58 байтов, спасибо aschepler .
56 байт, благодаря hvd
Попробуйте - C ++!
Попробуй это - C!
источник
#ifdef
буквы, чтобы сделать одну. 2) Вы можете удалить пространство в#include <stdio.h>
. 3) Вы можете изменитьprintf("%s",
наputs(
. Попробуйте онлайн!sizeof('x')>1?"abc":"cba"
трюк.sizeof
Операнду не нужны скобки, это не функция.R / Cubix , 20 байтов
R - Попробуйте онлайн!
Cubix - попробуйте онлайн!
Для R,
cat("abc")
то бесстыдное злоупотребление комментариями. Для Cubix"abc"
Вставляет a, b ad c в стек)#
Увеличивает c, помещает количество элементов в стекu
Разворот направо;(
Убрать граф, убавитьo;o;o@
Выведите cba и выйдитеВставляет число в стек
источник
cat(
Cubix полностью игнорирует это.Python 3 , 26 байт
Попробуйте онлайн!
Python 2 , 26 байт
Попробуйте онлайн!
25-байтовая версия с
exit
вместо используется , которая выводит в STDERR.Это в основном то же самое
print('abc'[::[1,-1][1/2>0]])
, что и игра в гольф.источник
Python 2 и Foo , 16 байт
Python 2
Попробуйте Python 2 онлайн!
объяснение
Foo
Попробуйте Foo онлайн!
объяснение
источник
C (gcc) C ++ (g ++), 59 байт
источник
Деление / > <> , 11 байт
Попробуй Fission Online
При делении частица начинается
R
и печатаетabc
.Попробуйте> <> Онлайн
В> <> IP начинается сверху слева.
!
пропускает следующую инструкцию и"abc"
помещает [a, b, c] в стек.ooo
затем выскакивает и печатает три раза, даваяcba
.Обе программы заканчиваются на
;
источник
Ly / > <> ,
2019 байтПопробуйте это с> <>!
Попробуй это с Ли!
Эти языки очень похожи, так как Ly основан на> <>. Однако Ly не имеет 2D исполнения и интерпретирует
&
разному, что я здесь использовал.Оба языка начнут с нажатия
abc
в стек.Для> <>
&
инструкция перемещает значения в регистр и обратно. Два подряд выдвигают значение в регистр, а затем возвращают его обратно, по сути, NOP.Для Ly
&
это модификатор, который заставляет инструкцию выполнять свою функцию на всем стеке.o
означает то же самое для обоих языков, но так как он изменен&
в Ly, он напечатает весь стек, выведяabc
. В> <> он будет выводить толькоc
(как печатается сверху вниз)v
это NOP в Ly, который пропускает его и переходит прямо к;
завершению выполнения. > <> вместо этого будет обрабатывать его как указатель, отправляя IP-адрес вниз.Затем он нажимает на другую стрелку, отправляя IP влево. Здесь встречаются два
o
знака: выводb
иa
.РЕДАКТИРОВАТЬ: Сохраненный байт (и исправлено> <> сбой)
источник
;
его во вторую строку. Это также имеет то преимущество, что IP-адрес> <> не оборачивается и снова не проходит через вторую строку, что вызывает ошибку."abc"&&ooo;
? Это приводит к краху Ly, но только после печати «abc»."abc"&&o!;o<
за 1 дополнительный байт, если вы хотите избежать сбоя.Japt 2.0 / JavaScript,
1110 байтJapt 2.0 выходы
cba
Выходы JavaScript
abc
источник
J / K (Kona) , 30 байтов
TIO - J & TIO - K kona
источник
05AB1E и 2sable , 6 байтов
Печатает
ABC
(OP сказал, что это разрешено) в 05AB1E иCBA
в 2sable, используя тот факт, что 2sable был похож на 05AB1E, ноžR
был добавлен к 05AB1E после того, как 2sable был оставлен.Попробуйте онлайн! (05AB1E)
Попробуйте онлайн! (2sable)
источник
l
btw.PHP + JavaScript,
2928 байтЭто работает, потому что PHP интерпретирует
'0'
(так же, как целое число0
) как ложное, в то время как JavaScript предполагает, что это просто непустая строка, которая является правдивой.Это предназначено для запуска
-r
на PHP. В Javascript просто вставьте его в консоль.Спасибо @Justin Mariner за спасение мне 1 байт!
источник
"0"
вместо+![]
: это становится0
(ложно) в PHP и является строкой (правда) в JS.+![]?print(abc):alert('cba');
->"0"?alert('cba'):print(abc);
PHP / Brainf * ck, 31 байт
используя
-r
флаг,PHP видит
die(abc)
и комментарий, и так как компилятор прощает, он выводитabc
в виде строки вместо пустой переменной.Brainf * ck видит только символы инструкции, а остальное видится как комментарии.
Попробуйте онлайн! (PHP)
Попробуйте онлайн! (Brainf * ск)
источник
-r
Юлия и Октава / Матлаб, 27 байтов
В Octave оба
'a'
и"a"
представляют одну и ту же строку, поэтому'a'=="a"
верно. Тем не менее, в Юлии,'a'
это один символ, в то время"a"
как строка из одного символа. У Юлии"cba"
это выходной.Безголовая версия:
источник
Perl / Ruby, 18 байт
Рубин
print
S ,cba
как мы называем.reverse
на струне.Попробуйте онлайн!
Perl
print
sabc
конкатенируется с результатом,reverse
который по умолчанию работает с$_
пустым и поэтому не имеет значения.Попробуйте онлайн!
источник