Sua tarefa é simples, escreva um único trecho de código que, quando executado em um idioma, gera apenas a sequência 'abc'
e, quando executado em outro idioma, gera apenas a sequência 'cba'
. O programa não deve receber entrada.
Este é um desafio do código-golfe .
ABC
vez deabc
cba
é aoabc
contrário; ligação , ligação , ligação , ligação , ligação , ligação , ligação , ligação , ligação'ABC'
e'CBA'
é ok, levando / espaços em branco / novas linhas ok, mas deve ser a mesma para ambas as saídasRespostas:
05AB1E / Pyth , 5 bytes
Experimente o 05AB1E online!
Experimente o Pyth online!
Isso também funciona em Pyke, produzindo
cba
.Isso também funciona no Recursiva, produzindo
cba
.fonte
MATLAB / oitava, 41 bytes
Em MATLAB
randsample(2,2)
dá um vetor 2 × 1, assimsize(...,2)
é1
. Assim,flip
é aplicado ao longo da primeira dimensão, que é um singleton, para que a sequência original'abc'
seja exibida:Em Octave
randsample(2,2)
fornece um vetor 1 × 2, assimsize(...,2)
é2
. Assim,flip
é aplicada ao longo da segunda dimensão, ou seja, a sequência é invertida da esquerda para a direita:fonte
version
variante menos interessante .25 bytes
Experimente online! ( Python 2 )
Experimente online! ( Python 3 )
fonte
exit
vez deprint
(embora isso se aplique a todas as respostas a partir de agora).exit
imprime parastderr
, não é? Não tenho certeza se seria uma resposta válida.Espaço em branco e Bash , 57 bytes
Experimente online!
fonte
-1 byte se eu fizer
==0
em>0
mas isso já é outra respostaPython 2 , 26 bytes
Experimente online!
Python 3 , 26 bytes
Experimente online!
1/2
dá0
(floordiv) em Python 2 e0.5
(truediv) em Python 3. Assim,1/2==0
dá uma em Python 3 e 0 em Python 2 (na verdade, booleanos, mas estes são apenas números inteiros), assim'acbbca'[1::2] => 'cba'
é dado para o Python 3 e'acbbca'[0::2] => 'abc'
é dado para o Python 2)fonte
Planilhas do Excel / Google,
41282724 BytesFórmula de planilha anônima que não aceita entradas e saídas
"ABC"
na célula de chamada no Excel e"CBA"
na célula de chamada no Planilhas GoogleNo Planilhas Google,
M(...)
é um alias para e formatado automaticamente paraT(...)
(abreviação deText()
). Essa chamada retorna o valor de texto da variável passada"CBA"
,."CBA"
não é capturado como um erro, então"CBA"
é retornado porIfError(...,"ABC")
No Excel, não há
M(...)
função eM(...)
não é um alias e, portanto,M("CBA")
retorna a fórmula de erro não encontrado#NAME?
,. Isso é capturado peloIfError(...,"ABC")
que, por sua vez, retorna"ABC"
.Versões anteriores, 27, 28, 41 bytes
Veja as edições para explicações
fonte
iserr
em vez deiferror
e 1 byte usando "SYSTEM" em vez de "NUMFILE":=IF(ISERR(INFO("SYSTEM")),"cba","abc")
CJam / 05AB1E , 6 bytes
Experimente online:
Como funciona no CJam
Como funciona no 05AB1E
fonte
Pedimos desculpas a @HyperNeutrino por roubar a maior parte de sua resposta (ainda não tenho reputação de comentar)
Python 2 , 25 bytes
Experimente online!
Python 3 , 25 bytes
Experimente online!
fonte
<1
btw.print
porexit
(o que é permitido pelas nossas regras) e, portanto, salvar 1 byte.Vim / Notepad.exe, 10 bytes
fonte
JavaScript (NodeJS) e PHP, 46 bytes
Imprime
abc
em JS ecba
em PHP.Experimente o JS online!
Experimente o PHP online! (observe que o TIO não oculta os comentários em HTML (
<!--
...-->
)fonte
<!--
interpretado no Node?//
( fonte ). Funciona dessa maneira no JS do navegador também.--> blah blah
é um comentário válido em algum intérprete de JavaScript, você pode apenas remover//
Python / Befunge,
2018 bytes2 bytes salvos graças a @karhell
Experimente online! para Python
Python vê
print("abc")
então um comentário.Experimente online! para Befunge
Befunge, removendo todos os NOPs e comandos inúteis vê
"abc",,,@
o que colocaa
,b
ec
na pilha e, em seguida, imprime-(último in - first out).fonte
>:#,_@
,,,@
#,,<@
vez dissoPython 2 e Python 3, 42 bytes
Experimente online! (Python 2)
Experimente online! (Python 3)
Pensei em tentar algo diferente ...
fonte
try:long;print('abc')
try:cmp;print('abc')
Planilhas do Excel / Google, 28 bytes
Inspirado em @TaylorScott, que usou uma função que só existe no Excel, eu encontrei uma função ainda mais curta que existe apenas no Planilhas Google. Convenientemente, ele foi projetado para retornar seqüências de caracteres:
Como funciona
No Planilhas Google,
join([arg1], arg2, arg3,...argk)
concatenará arg2 -> argk , opcionalmente usando o separador especificado em arg1 . Nesse caso, ele retorna com êxito "cba".O Excel não tem
join
função, entãoiferror
vê um problema e retorna "abc"fonte
CJam e Gaia , 8 bytes
Experimente no CJam!
Experimente em Gaia!
Explicação
Nos dois idiomas, isso define uma lista de caracteres.
No CJam,
$
é uma espécie, por isso se tornaabc
.Em Gaia,
$
junta a lista em uma sequência, dandocba
.fonte
Java 8 e C, 95 bytes
Experimente no Java 8 - resultando em "abc".
Experimente em C - resultando em "cba".
Explicação:
Como você pode ver no código destacado em Java acima, a primeira linha é um comentário devido a
//
, e o código C é um comentário devido a/* ... */
, resultando em:Não tenho certeza de como habilitar corretamente o realce C, porque
lang-c
resulta no mesmo realce que Java. Mas//\
comentaremos a próxima linha, que é o código Java, resultando em:fonte
Python 2 / Python 3, 28 bytes
No Python 2
int(1/2*4)-1
avalia-1
e imprimecba
. - TiONo Python 3, ele avalia as
1
impressõesabc
. - TiOfonte
C e C ++,
115,78,58, 56 bytes78 bytes, graças ao challenger5 .
58 bytes, graças ao aschepler .
56 bytes, graças ao hvd
Experimente - C ++!
Experimente - C!
fonte
#ifdef
s para criar um único. 2) Você pode remover o espaço#include <stdio.h>
. 3) Você pode mudarprintf("%s",
paraputs(
. Experimente online!sizeof('x')>1?"abc":"cba"
truque.sizeof
O operando não precisa de parênteses, não é uma função.R / Cubix , 20 bytes
R - Experimente online!
Cubix - Experimente online!
Para R,
cat("abc")
então abuso descarado de comentários. Para Cubix"abc"
Empurra a, b ad c para a pilha)#
Incrementar c, empurra o número de elementos na pilhau
Vire à direita para a direita;(
Remova a contagem, diminua oco;o;o@
Saída cba e saídaEmpurra o número na pilha
fonte
cat(
is totally ignored by Cubix.Python 3 , 26 bytes
Experimente online!
Python 2 , 26 bytes
Experimente online!
Versão de 25 bytes com
exit
vez , que gera para STDERR.É basicamente o mesmo que
print('abc'[::[1,-1][1/2>0]])
, apenas que é jogado no golfe.fonte
Python 2 e Foo , 16 bytes
Python 2
Experimente o Python 2 online!
Explicação
Foo
Experimente o Foo online!
Explicação
fonte
C (gcc) C ++ (g ++), 59 bytes
fonte
Fissão / > <> , 11 bytes
Experimente a Fissão Online
Em Fissão, uma partícula começa em
R
e imprimeabc
.Experimente> <> Online
Em> <>, o IP inicia no canto superior esquerdo.
!
pula a próxima instrução e"abc"
pressiona [a, b, c] na pilha.ooo
depois aparece e imprime três vezes, dandocba
.Ambos os programas terminam em
;
fonte
Ly / > <> ,
2019 bytesExperimente com> <>!
Experimente com Ly!
Esses idiomas são muito semelhantes, pois Ly se baseia em> <>. No entanto, Ly não tem execução 2D e interpreta
&
diferente, da qual aproveitei aqui.Os dois idiomas começarão pressionando
abc
para a pilha.Para> <>, a
&
instrução move valores para lá e para cá do registrador. Dois em uma linha empurrarão um valor para o registrador e o levarão de volta, essencialmente um NOP.Para Ly,
&
é um modificador que faz uma instrução desempenhar sua função em toda a pilha.o
significa a mesma coisa para os dois idiomas, mas, como é modificado&
em Ly, ele imprimirá a pilha inteira, produzindoabc
. Em> <>, ele produzirá apenasc
(como é impresso de cima para baixo)v
é um NOP em Ly, que pula e vai direto para;
, finalizando a execução. > <> o tratará como um ponteiro, enviando o IP para baixo.Em seguida, ele atinge outra seta, enviando o IP para a esquerda. Aqui, ele encontra dois
o
sinais, saídab
ea
.EDIT: salvou um byte (e corrigiu> <> travamento)
fonte
;
para a segunda linha. Isso também tem o benefício de que o IP <> não circula e passa pela segunda linha novamente, o que causa um erro."abc"&&ooo;
? Faz Ly travar, mas somente após a impressão "abc"."abc"&&o!;o<
por 1 byte extra, se você quiser evitar falhas.Japonês 2.0 / JavaScript,
1110 bytesJapt 2,0 saídas
cba
Saídas JavaScript
abc
fonte
J / K (Kona) , 30 bytes
TIO - J & TIO - K kona
fonte
05AB1E e 2sable , 6 bytes
Impressões
ABC
(OP disse que era permitido) em 05AB1E eCBA
em 2sable, usando o fato de que 2sable era semelhante a 05AB1E, masžR
foi adicionado a 05AB1E após o 2sable ser abandonado.Experimente online! (05AB1E)
Experimente online! (2sable)
fonte
l
btw.PHP + JavaScript,
2928 bytesIsso funciona porque o PHP interpreta
'0'
(o mesmo que o número inteiro0
) como sendo falso, enquanto o JavaScript assume que é simplesmente uma string não vazia que é verdadeira.Isso deve ser executado
-r
no PHP. Em Javascript, basta colá-lo no console.Obrigado a Justin Mariner por me salvar 1 byte!
fonte
"0"
vez de+![]
: torna-se0
(falso) no PHP e é uma string (verdade) em JS.+![]?print(abc):alert('cba');
->"0"?alert('cba'):print(abc);
PHP / Brainf * ck, 31 bytes
usando o
-r
bandeiraO PHP vê
die(abc)
e comenta, e como o compilador perdoa, ele geraabc
como uma string em vez de uma variável vazia.Brainf * ck vê apenas os caracteres da instrução e o restante é visto como comentários.
Experimente online!(PHP)
Experimente online! (Brainf * ck)
fonte
-r
Julia e Octave / Matlab, 27 bytes
Na oitava, ambos
'a'
e"a"
representam a mesma sequência, portanto,'a'=="a"
é verdade. No entanto, em Julia,'a'
é um único personagem enquanto"a"
é uma sequência de um caractere. Em Julia,"cba"
é a saída.Versão não destruída:
fonte
Perl / Ruby, 18 bytes
Rubi
print
scba
como estamos chamando.reverse
na string.Experimente online!
Perl
print
sabc
concatenado com o resultado doreverse
qual, por padrão, trabalha$_
vazio e, portanto, não faz diferença.Experimente online!
fonte