Su tarea es simple: escriba un fragmento de código único que, cuando se ejecuta en un idioma, solo genera la cadena 'abc'
y cuando se ejecuta en otro idioma solo genera la cadena 'cba'
. El programa no debe tomar ninguna entrada.
Este es un desafío de código de golf .
ABC
lugar deabc
cba
es alabc
revés; enlace , enlace , enlace , enlace , enlace , enlace , enlace , enlace , enlace'ABC'
y'CBA'
está bien, espacios en blanco iniciales / finales / nuevas líneas están bien, pero debe ser el mismo para ambas salidasRespuestas:
05AB1E / Pyth , 5 bytes
¡Prueba 05AB1E en línea!
¡Prueba Pyth en línea!
Esto también funciona en Pyke, dando salida
cba
.Esto también funciona en Recursiva, produciendo
cba
.fuente
MATLAB / Octave, 41 bytes
En MATLAB
randsample(2,2)
da un vector 2 × 1, también losize(...,2)
es1
. Porflip
lo tanto, se aplica a lo largo de la primera dimensión, que es un singleton, por lo que'abc'
se muestra la cadena original :En Octave
randsample(2,2)
da un vector 1 × 2, también losize(...,2)
es2
. Porflip
lo tanto, se aplica a lo largo de la segunda dimensión, es decir, la cadena se voltea de izquierda a derecha:fuente
version
variante menos interesante .25 bytes
Pruébalo en línea! ( Python 2 )
Pruébalo en línea! ( Python 3 )
fuente
exit
lugar deprint
(aunque esto se aplica a todas las respuestas a partir de ahora).exit
imprime astderr
, ¿no? No estoy seguro de si sería una respuesta válida.Espacio en blanco y Bash , 57 bytes
Pruébalo en línea!
fuente
-1 bytes si hago
==0
en>0
pero eso es ya otra respuestaPython 2 , 26 bytes
Pruébalo en línea!
Python 3 , 26 bytes
Pruébalo en línea!
1/2
da0
(floordiv) en Python 2 y0.5
(truediv) en Python 3. Por lo tanto,1/2==0
da 1 en Python 3 y 0 en Python 2 (en realidad, booleanos, pero esos son solo enteros), por lo que'acbbca'[1::2] => 'cba'
se da para Python 3 y'acbbca'[0::2] => 'abc'
se da para Python 2)fuente
Hojas de Excel / Google,
41282724 BytesFórmula de hoja de trabajo anónima que no lleva entradas ni salidas
"ABC"
a la celda que llama en Excel ni"CBA"
a la celda que llama en Hojas de cálculo de GoogleEn Google Sheets,
M(...)
es un alias para y autoformatado aT(...)
(abreviatura deText()
) Esta llamada devuelve el valor de texto de la variable pasada,"CBA"
."CBA"
no se detecta como un error, por lo que"CBA"
es devuelto porIfError(...,"ABC")
En Excel, no hay ninguna
M(...)
función, yM(...)
no es un alias y por lo tantoM("CBA")
devuelve la fórmula no se encuentra el error,#NAME?
. Esto es atrapado porIfError(...,"ABC")
, que a su vez regresa"ABC"
.Versiones anteriores, 27, 28, 41 bytes
Ver ediciones para explicaciones
fuente
iserr
lugar deiferror
y 1 byte usando "SYSTEM" en lugar de "NUMFILE":=IF(ISERR(INFO("SYSTEM")),"cba","abc")
CJam / 05AB1E , 6 bytes
Pruébalo en línea:
Cómo funciona en CJam
Cómo funciona en 05AB1E
fuente
Con disculpas a @HyperNeutrino por robar la mayor parte de su respuesta (aún no tengo la reputación para comentar)
Python 2 , 25 bytes
Pruébalo en línea!
Python 3 , 25 bytes
Pruébalo en línea!
fuente
<1
cierto.print
conexit
(que está permitido por nuestras reglas) y, por lo tanto, guardar 1 byte.Vim / Notepad.exe, 10 bytes
fuente
JavaScript (NodeJS) y PHP, 46 bytes
Imprime
abc
en JS ycba
en PHP.Prueba el JS en línea!
Prueba el PHP en línea! (tenga en cuenta que TIO no oculta los comentarios HTML (
<!--
...-->
)fuente
<!--
interpreta en Nodo?//
( fuente ). Funciona de esa manera en el navegador JS también.--> blah blah
es un comentario válido en algún intérprete de JavaScript, simplemente puede eliminarlo//
Python / Befunge,
2018 bytes2 bytes guardados gracias a @karhell
Pruébalo en línea! para Python
Python ve
print("abc")
entonces un comentario.Pruébalo en línea! para Befunge
Befunge, la eliminación de todos los NOP y comandos inútiles ve
"abc",,,@
que ponea
,b
yc
en la pila y se imprimen (último en entrar - primero fuera).fuente
>:#,_@
por,,,@
#,,<@
lugarPython 2 y Python 3, 42 bytes
Pruébalo en línea! (Python 2)
Pruébalo en línea! (Python 3)
Pensé que probaría algo diferente ...
fuente
try:long;print('abc')
try:cmp;print('abc')
Hojas de Excel / Google, 28 bytes
Inspirado por @TaylorScott, quien usó una función que solo existe en Excel, encontré una función aún más corta que solo existe en Google Sheets. Convenientemente, está diseñado para devolver cadenas:
Cómo funciona
En Google Sheets,
join([arg1], arg2, arg3,...argk)
concatenará arg2 -> argk , opcionalmente usando el separador especificado en arg1 . En este caso, devuelve con éxito "cba".Excel no tiene
join
función, por lo queiferror
ve un problema y devuelve "abc"fuente
CJam y Gaia , 8 bytes
Pruébalo en CJam!
Pruébalo en Gaia!
Explicación
En ambos idiomas, esto define una lista de caracteres.
En CJam,
$
es una especie, por lo que se convierteabc
.En Gaia,
$
une la lista en una cadena, dandocba
.fuente
Java 8 y C, 95 bytes
Pruébelo en Java 8, lo que da como resultado "abc".
Pruébelo en C, lo que da como resultado "cba".
Explicación:
Como puede ver en el código resaltado de Java anterior, la primera línea es un comentario debido
//
, y el código C es un comentario debido/* ... */
, lo que resulta en:No estoy seguro de cómo habilitar correctamente el resaltado en C, porque
lang-c
da como resultado el mismo resaltado que Java ... Pero//\
comentará la siguiente línea, que es el código Java, lo que resulta en:fuente
Python 2 / Python 3, 28 bytes
En Python 2 se
int(1/2*4)-1
evalúa-1
y se imprimecba
. - TiOEn Python 3 evalúa las
1
impresionesabc
. - TiOfuente
C y C ++,
115,78,58, 56 bytes78 bytes, gracias a challenger5 .
58 bytes, gracias a aschepler .
56 bytes, gracias a hvd
Pruébalo - C ++!
Pruébalo - C!
fuente
#ifdef
s para hacer una sola. 2) Puede eliminar el espacio en#include <stdio.h>
. 3) Puedes cambiarprintf("%s",
aputs(
. Pruébalo en línea!sizeof('x')>1?"abc":"cba"
truco.sizeof
El operando no necesita paréntesis, no es una función.R / Cubix , 20 bytes
R - ¡Pruébalo en línea!
Cubix - ¡Pruébalo en línea!
Para R,
cat("abc")
luego el desvergonzado abuso de los comentarios. Para Cubix"abc"
Empuja a, b ad c en la pila)#
Incrementa la c, empuja el número de elemento en la pilau
Giro en U a la derecha;(
Eliminar la cuenta, disminuir la co;o;o@
Salida cba y salidaEmpuja el número en la pila
fuente
cat(
Cubix lo ignora por completo.Python 3 , 26 bytes
Pruébalo en línea!
Python 2 , 26 bytes
Pruébalo en línea!
Versión de 25 bytes con en su
exit
lugar , que se envía a STDERR.Esto es básicamente lo mismo que
print('abc'[::[1,-1][1/2>0]])
, solo que es golf.fuente
Python 2 y Foo , 16 bytes
Python 2
¡Prueba Python 2 en línea!
Explicación
Foo
¡Prueba Foo en línea!
Explicación
fuente
C (gcc) C ++ (g ++), 59 bytes
fuente
Fisión / > <> , 11 bytes
Prueba la fisión en línea
En Fission, una partícula comienza
R
e imprimeabc
.Probar> <> En línea
En> <>, la IP comienza en la esquina superior izquierda.
!
omite la siguiente instrucción y"abc"
empuja [a, b, c] en la pila.ooo
luego aparece e imprime tres veces, dandocba
.Ambos programas terminan en
;
fuente
Ly / > <> ,
2019 bytesPruébalo con> <>!
Pruébalo con Ly!
Estos lenguajes son muy similares, ya que Ly se basa en> <>. Sin embargo, Ly no tiene ejecución 2D e interpreta de manera
&
diferente, lo cual aproveché aquí.Ambos idiomas comenzarán empujando
abc
a la pila.Para> <>, la
&
instrucción mueve valores hacia y desde el registro. Dos seguidos empujarán un valor al registro y luego lo llevarán directamente hacia atrás, esencialmente un NOP.Para Ly,
&
es un modificador que hace que una instrucción realice su función en toda la pila.o
significa lo mismo para ambos idiomas, pero dado que está modificado por&
Ly, imprimirá la pila completa, generandoabc
. En> <>, solo saldrác
(como se imprime de arriba hacia abajo)v
es un NOP en Ly, que lo omite y va directo a;
, finalizando la ejecución. > <> en su lugar lo tratará como un puntero, enviando la IP hacia abajo.Luego golpea otra flecha, enviando la IP a la izquierda. Aquí, cumple con dos
o
signos, salidab
ya
.EDITAR: guardado un byte (y arreglado> <> fallar)
fuente
;
a la segunda línea. Esto también tiene el beneficio de que la IP> <> no se ajusta y pasa por la segunda línea nuevamente, lo que causa un error."abc"&&ooo;
? Hace que Ly se bloquee, pero solo después de imprimir "abc"."abc"&&o!;o<
por 1 byte extra, si quieres evitar chocar.Japt 2.0 / JavaScript,
1110 bytesJapt 2.0 salidas
cba
Salidas de JavaScript
abc
fuente
J / K (Kona) , 30 bytes
TIO - J & TIO - K kona
fuente
05AB1E y 2sable , 6 bytes
Imprime
ABC
(OP dijo que estaba permitido) en 05AB1E yCBA
en 2sable, utilizando el hecho de que 2sable era similar a 05AB1E perožR
se agregó a 05AB1E después de que 2sable fue abandonado.Pruébalo en línea! (05AB1E)
Pruébalo en línea! (2sable)
fuente
l
cierto.PHP + JavaScript,
2928 bytesEsto funciona porque PHP interpreta
'0'
(igual que el número entero0
) como falso, mientras que JavaScript asume que es simplemente una cadena no vacía que es verdadera.Esto está destinado a ejecutarse
-r
en PHP. En Javascript, solo pégalo en la consola.¡Gracias a @Justin Mariner por salvarme 1 byte!
fuente
"0"
lugar de+![]
: se convierte en0
(falso) en PHP y es una cadena (verdadero) en JS.+![]?print(abc):alert('cba');
->"0"?alert('cba'):print(abc);
PHP / Brainf * ck, 31 bytes
usando la
-r
bandera,PHP ve
die(abc)
y comenta, y dado que el compilador es indulgente, se muestraabc
como una cadena en lugar de una variable vacía.Brainf * ck solo ve los caracteres de instrucción, y el resto se ve como comentarios.
Pruébalo en línea! (PHP)
Pruébalo en línea! (Brainf * ck)
fuente
-r
Julia y Octave / Matlab, 27 bytes
En Octave, ambos
'a'
y"a"
representan la misma cadena, por'a'=="a"
lo tanto, es cierto. Sin embargo, en Julia,'a'
es un solo carácter, mientras que"a"
es una cadena de un carácter. En Julia,"cba"
es la salida.Versión sin golf:
fuente
Perl / Ruby, 18 bytes
Rubí
print
scba
como estamos llamando.reverse
a la cadena.Pruébalo en línea!
Perl
print
sabc
concatenado con el resultado dereverse
que por defecto funciona en el$_
que está vacío y, por lo tanto, no hay diferencia.Pruébalo en línea!
fuente