Votre tâche est simple, écrivez un extrait de code unique qui, lorsqu'il est exécuté dans une langue, ne produit que la chaîne 'abc'
et lorsqu'il est exécuté dans une autre langue, ne produit que la chaîne 'cba'
. Le programme ne doit prendre aucune entrée.
Il s'agit d'un défi de code-golf .
ABC
place deabc
cba
est à l'abc
envers; lien , lien , lien , lien , lien , lien , lien , lien , lien'ABC'
et'CBA'
est ok, les espaces blancs deRéponses:
05AB1E / Pyth , 5 octets
Essayez 05AB1E en ligne!
Essayez Pyth en ligne!
Cela fonctionne également dans Pyke, en sortie
cba
.Cela fonctionne également dans Recursiva, en sortie
cba
.la source
MATLAB / Octave, 41 octets
Dans MATLAB
randsample(2,2)
, le vecteur 2 × 1 l'size(...,2)
est aussi1
. Ainsiflip
est appliqué le long de la première dimension, qui est un singleton, de sorte que la chaîne d'origine'abc'
s'affiche:Dans Octave
randsample(2,2)
donne un vecteur 1 × 2, il ensize(...,2)
est de même2
. Ainsiflip
est appliqué le long de la deuxième dimension, c'est-à-dire que la chaîne est inversée de gauche à droite:la source
version
variante la moins intéressante .25 octets
Essayez-le en ligne! ( Python 2 )
Essayez-le en ligne! ( Python 3 )
la source
exit
au lieu deprint
(bien que cela s'applique à chaque réponse à partir de maintenant).exit
imprime surstderr
, n'est-ce pas? Je ne sais pas si ce serait une réponse valide.Espace et Bash , 57 octets
Essayez-le en ligne!
la source
-1 octet si je fais
==0
en>0
mais c'est déjà une autre réponsePython 2 , 26 octets
Essayez-le en ligne!
Python 3 , 26 octets
Essayez-le en ligne!
1/2
donne0
(floordiv) en Python 2 et0.5
(truediv) en Python 3. Ainsi,1/2==0
donne 1 en Python 3 et 0 en Python 2 (en fait, booléens, mais ce ne sont que des entiers),'acbbca'[1::2] => 'cba'
est donc donné pour Python 3 et'acbbca'[0::2] => 'abc'
est donné pour Python 2.la source
Fiches Excel / Google,
41282724 octetsFormule de feuille de calcul anonyme qui ne prend aucune entrée et sortie
"ABC"
dans la cellule appelante dans Excel et"CBA"
dans la cellule appelante dans Google SheetsDans Google Sheets,
M(...)
est un alias pour et mis en forme automatiquementT(...)
(abréviation deText()
). Cet appel renvoie la valeur de texte de la variable passée,"CBA"
."CBA"
n'est pas détecté comme une erreur, il"CBA"
est donc renvoyé parIfError(...,"ABC")
Dans Excel, il n'y a aucune
M(...)
fonction, etM(...)
n'est pas un alias et doncM("CBA")
retourne la formule ne trouve pas d' erreur,#NAME?
. Ceci est rattrapéIfError(...,"ABC")
, qui à son tour revient"ABC"
.Versions précédentes, 27, 28, 41 octets
Voir les modifications pour les explications
la source
iserr
au lieu deiferror
et 1 octet en utilisant "SYSTEM" au lieu de "NUMFILE":=IF(ISERR(INFO("SYSTEM")),"cba","abc")
CJam / 05AB1E , 6 octets
Essayez-le en ligne:
Comment ça marche dans CJam
Comment ça marche dans 05AB1E
la source
Toutes mes excuses à @HyperNeutrino pour avoir volé la majeure partie de sa réponse (je n'ai pas encore la réputation de commenter)
Python 2 , 25 octets
Essayez-le en ligne!
Python 3 , 25 octets
Essayez-le en ligne!
la source
<1
btw.print
parexit
(ce qui est autorisé par nos règles) et ainsi économiser 1 octet.Vim / Notepad.exe, 10 octets
la source
JavaScript (NodeJS) et PHP, 46 octets
Imprime
abc
en JS etcba
en PHP.Essayez le JS en ligne!
Essayez le PHP en ligne! (notez que TIO ne cache pas les commentaires HTML (
<!--
...-->
)la source
<!--
interprété dans Node?//
( source ). Cela fonctionne également dans le navigateur JS.--> blah blah
est un commentaire valide dans un interpréteur JavaScript, vous pouvez simplement le supprimer//
Python / Befunge,
2018 octets2 octets économisés grâce à @karhell
Essayez-le en ligne! pour Python
Python voit
print("abc")
alors un commentaire.Essayez-le en ligne! pour Befunge
Befunge, en supprimant tous les nops et les commandes inutiles, voit
"abc",,,@
quelles misesa
,b
etc
sur la pile, puis les imprime (dernier entré - premier sorti).la source
>:#,_@
par,,,@
#,,<@
placePython 2 et Python 3, 42 octets
Essayez-le en ligne! (Python 2)
Essayez-le en ligne! (Python 3)
Je pensais que j'essaierais quelque chose de différent ...
la source
try:long;print('abc')
try:cmp;print('abc')
Feuilles Excel / Google, 28 octets
Inspiré par @TaylorScott, qui a utilisé une fonction qui n'existe que dans Excel, j'ai trouvé une fonction encore plus courte qui n'existe que dans Google Sheets. Idéalement, il est conçu pour renvoyer des chaînes:
Comment ça marche
Dans Google Sheets,
join([arg1], arg2, arg3,...argk)
concaténera arg2 -> argk , en utilisant éventuellement le séparateur spécifié dans arg1 . Dans ce cas, il renvoie avec succès "cba".Excel n'a pas de
join
fonction,iferror
voit donc un problème et retourne "abc"la source
CJam et Gaia , 8 octets
Essayez-le dans CJam!
Essayez-le à Gaia!
Explication
Dans les deux langues, cela définit une liste de caractères.
Dans CJam,
$
c'est en quelque sorte, ça devientabc
.Dans Gaia,
$
joint la liste en une seule chaîne, donnantcba
.la source
Java 8 et C, 95 octets
Essayez-le en Java 8 - résultant en "abc".
Essayez-le en C - résultant en "cba".
Explication:
Comme vous pouvez le voir dans le code surligné Java ci-dessus, la première ligne est un commentaire dû à
//
, et le code C est un commentaire dû à/* ... */
, résultant en:Je ne sais pas comment activer correctement la surbrillance C, car cela
lang-c
entraîne la même surbrillance que Java .. Mais//\
commentera la ligne suivante, qui est le code Java, résultant en:la source
Python 2 / Python 3, 28 octets
En Python 2
int(1/2*4)-1
évalue-1
et imprime donccba
. - TiOEn Python 3, il évalue
1
donc les impressionsabc
. - TiOla source
C et C ++,
115,78,58, 56 octets78 octets, grâce à challenger5 .
58 octets, grâce à aschepler .
56 octets, grâce au hvd
Essayez-le - C ++!
Essayez-le - C!
la source
#ifdef
réduire les deux pour en faire un seul. 2) Vous pouvez supprimer l'espace#include <stdio.h>
. 3) Vous pouvez changerprintf("%s",
pourputs(
. Essayez-le en ligne!sizeof('x')>1?"abc":"cba"
truc.sizeof
L'opérande n'a pas besoin de parenthèses, ce n'est pas une fonction.R / Cubix , 20 octets
R - Essayez-le en ligne!
Cubix - Essayez-le en ligne!
Pour R,
cat("abc")
alors abus sans vergogne de commentaires. Pour Cubix"abc"
Pousse a, b et c sur la pile)#
Incrémente le c, pousse le nombre d'éléments dans la pileu
Demi-tour à droite;(
Supprimer le nombre, décrémenter le co;o;o@
Sortie cba et sortiePousse le nombre dans la pile
la source
cat(
Cubix l'ignore totalement.Python 3 , 26 octets
Essayez-le en ligne!
Python 2 , 26 octets
Essayez-le en ligne!
Version 25 octets avec à la
exit
place , qui sort à la place vers STDERR.C'est fondamentalement la même chose que
print('abc'[::[1,-1][1/2>0]])
, juste qu'il est joué au golf.la source
Python 2 et Foo , 16 octets
Python 2
Essayez Python 2 en ligne!
Explication
Foo
Essayez Foo en ligne!
Explication
la source
C (gcc) C ++ (g ++), 59 octets
la source
Fission / > <> , 11 octets
Essayez Fission en ligne
Dans Fission, une particule commence à
R
et s'imprimeabc
.Essayez> <> en ligne
Dans> <>, l'IP commence en haut à gauche.
!
ignore l'instruction suivante et"abc"
pousse [a, b, c] sur la pile.ooo
puis apparaît et imprime trois fois, donnantcba
.Les deux programmes se terminent à
;
la source
Ly / > <> ,
2019 octetsEssayez-le avec> <>!
Essayez-le avec Ly!
Ces langues sont très similaires, car Ly est basé sur> <>. Cependant, Ly n'a pas d'exécution 2D et interprète
&
différemment, ce dont j'ai profité ici.Les deux langues commenceront en poussant
abc
vers la pile.Pour> <>, l'
&
instruction déplace les valeurs dans les deux sens du registre. Deux de suite pousseront une valeur dans le registre puis la reprendront, essentiellement un NOP.Pour Ly,
&
est un modificateur qui fait qu'une instruction remplit sa fonction sur toute la pile.o
signifie la même chose pour les deux langues, mais comme il est modifié par&
dans Ly, il imprimera la pile entière, en sortieabc
. Dans> <>, il sortira uniquementc
(car il est imprimé de haut en bas)v
est un NOP dans Ly, qui l'ignore et passe directement à;
, mettant fin à l'exécution. > <> le traitera plutôt comme un pointeur, envoyant l'IP vers le bas.Il frappe ensuite une autre flèche, envoyant l'IP à gauche. Ici, il rencontre deux
o
signes, en sortieb
eta
.EDIT: enregistrement d'un octet (et correction>> du plantage)
la source
;
sur la deuxième ligne. Cela présente également l'avantage que l'IP <<> ne s'enroule pas et ne passe pas par la deuxième ligne, ce qui provoque une erreur."abc"&&ooo;
? Cela fait planter Ly, mais seulement après avoir imprimé "abc"."abc"&&o!;o<
pour 1 octet supplémentaire, si vous voulez éviter de planter.Japt 2.0 / JavaScript,
1110 octetsJapt 2.0 sorties
cba
Sorties JavaScript
abc
la source
J / K (Kona) , 30 octets
TIO - J & TIO - K kona
la source
05AB1E et 2sable , 6 octets
Impressions
ABC
(OP a dit que c'était autorisé) dans 05AB1E etCBA
dans 2sable, en utilisant le fait que 2sable était similaire à 05AB1E mais ažR
été ajouté à 05AB1E après que 2sable a été abandonné.Essayez-le en ligne! (05AB1E)
Essayez-le en ligne! (2sable)
la source
l
btw.PHP + JavaScript,
2928 octetsCela fonctionne parce que PHP interprète
'0'
(comme le nombre entier0
) comme étant faux, tandis que JavaScript suppose qu'il s'agit simplement d'une chaîne non vide qui est véridique.Ceci est destiné à fonctionner avec
-r
PHP. En Javascript, il suffit de le coller dans la console.Merci à @Justin Mariner de m'avoir sauvé 1 octet!
la source
"0"
place de+![]
: il devient0
(faux) en PHP et est une chaîne (véridique) en JS.+![]?print(abc):alert('cba');
->"0"?alert('cba'):print(abc);
PHP / Brainf * ck, 31 octets
en utilisant le
-r
drapeau,PHP voit
die(abc)
et un commentaire, et puisque le compilateur est indulgent, il génèreabc
une chaîne au lieu d'une variable vide.Brainf * ck ne voit que les caractères d'instruction, et le reste est considéré comme des commentaires.
Essayez-le en ligne!(PHP)
Essayez-le en ligne! (Brainf * ck)
la source
-r
Julia et Octave / Matlab, 27 octets
Dans Octave, les deux
'a'
et"a"
représentent la même chaîne, c'est donc'a'=="a"
vrai. Cependant, dans Julia, il'a'
s'agit d'un seul caractère alors qu'il"a"
s'agit d'une chaîne à un caractère. Dans Julia,"cba"
c'est la sortie.Version non golfée:
la source
Perl / Ruby, 18 octets
Rubis
print
scba
que nous appelons.reverse
sur la chaîne.Essayez-le en ligne!
Perl
print
sabc
concaténé avec le résultatreverse
qui par défaut fonctionne sur$_
lequel est vide et ne fait donc aucune différence.Essayez-le en ligne!
la source