Après tout le plaisir que nous avons eu avec les défis polyglottes dans le passé ( récent ), que diriez-vous d'un défi où la sortie peut être en deux langues?
Votre réponse doit accepter la saisie booléenne b
et sortir le texte "true"
ou "false"
. Le même code doit à la sortie, lorsqu'il est exécuté dans une autre langue, "waar"
ou "onwaar"
ou toute autre traduction true
et false
.
Contribution
- L'entrée est une vérité / falsey clairement reconnaissable. Sont admises les valeurs réelles T / F, un bit, un entier ou une chaîne (vide).
- L'entrée doit être la même pour toutes les parties de votre soumission.
Production
La sortie peut être retournée par une fonction, écrite
STDOUT
, placée dans une fenêtre contextuelle, imprimée en 3D et envoyée par la poste, etc.La sortie doit représenter l'état de
b
. Ainsi, un "véridique" doit produire "vrai", "waar" ... et "falsey" devrait conduire à "faux", "onwaar", etc.Différentes langues peuvent utiliser différentes méthodes de sortie.
Langues utilisées
L'une de vos sorties DOIT être
"true"
et"false"
.Différentes versions des langages de programmation comptent comme des langages différents pour ce défi.
Différents dialectes d'une langue humaine comptent comme différentes langues pour ce défi.
Vous pouvez étendre le polyglotte à plus de deux langages de programmation. Chaque langage de programmation doit produire un langage humain distinct.
La réponse avec le plus de langues incorporées sera déclarée gagnante. Une fois lié, le bytecount est pris en compte.
la source
"True"
et"False"
acceptables à la place des requis"true"
et"false"
?Réponses:
Dyalog APL ,
243237 octets : 14 langues, extensible à 131 *-6 octets grâce à Soaku .
Requiert
⎕IO←0
ce qui est par défaut sur de nombreux systèmes. Invite à saisir0
ou1
.Selon la version (9.0 à 16.0, avec les versions mineures), il sort en anglais, espagnol, portugais, allemand, vietnamien, français, turc, italien, polonais, Sundanais, philippin, yoruba, ouzbek ou roumain, mais sans signes diacritiques.
⎕AV⍳'ëáàÆÅÄòðÓÈÇ'
dans les indices de la A tomic V ecteur (151 142 141 133 131 122 121 132 111 102 101 96)((
...)⍳
...)
trouver la position de⍎
l'évaluation⎕D∩⍨
intersection des chiffres D et4↑
les quatre * premiers caractères de1⊃
le deuxième élément de#⎕WG'APLVersion'
le numéro de version(
...)⊃
puis utilisez-le pour choisir parmi⎕⊃
l'élément input'th (0: premier; 1: second) des¨
la fonction s (que nous définirons prochainement) appliquée à chacun⌽
l'inverse de(s←{
...})
s appliqué à - où s est défini comme1↓¨
le premier caractère est tombé de chacun⍵⊂⍨
l'argument partitionné où⍵=
les caractères de l'argument sont égaux à⊃⍵
le premier caractère de l'argument';,true,adevarat,
...,falsch',
cette chaîne a été ajoutée à18⍴',falso'
dix-huit caractères tirés cycliquement de cette chaîne* Depuis la version 12.1, le numéro de version inclut le numéro de build, donc en augmentant le nombre de caractères pris dans cette chaîne, il est facile de couvrir les 131 langages de script latins .
la source
prawdziwy
toprawda
etfalszywy
tofalsz
. Les formes plus courtes s'adaptent mieux ici et vous donnent un meilleur score.6 langues, 169 octets
Attend
0\n
ou1\n
en entrée et imprime les mots en:vals/waar
),faux/vrai
),false/true
),usant/sant
),usand/sand
),falso/vero
).la source
print
déclaration!Tous les Funges, 6 langues, 146 octets
💥 Maintenant en 3D! 💥
Pour plus de clarté, j'ai séparé les deux plans de code afin que vous puissiez voir comment ils sont superposés. Sur le disque, ces deux blocs seraient séparés par un caractère de saut de page à la fin de la ligne ci-dessus.
Les règles disaient que différentes versions d'une langue comptent comme des langues distinctes, donc celle-ci est six versions de Funge / Befunge. :)
Grâce à Dennis , toutes les versions de Befunge peuvent désormais être testées en ligne sur TIO . Il n'y a pas actuellement d'implémentations de travail des variantes Unefunge et Trefunge, donc pour ceux que je recommanderais Rc / Funge .
A
est ignoré dans Befunge 93 et 96, mais est la commande About Face en 97 et n'est pas prise en charge en 98 et se reflète donc. Cela signifie que 93 et 96 suivent lav
descente tandis que 97 et 98 s'enroulent du côté opposé du terrain de jeu.Dans Befunge 96, un
;
espace suivi au début de la ligne le marque comme un commentaire, de sorte que cette ligne est sautée et que l'interprète continue>
sur la troisième ligne. En 93, cependant, l'interprète suit le>
sur la deuxième ligne.Le chemin 97/98 continue sur la première ligne de droite à gauche, sautant la section à l'intérieur des
;
marqueurs de commentaire, relie la&
commande, pour finalement atteindre la séquence de U-bendv<^<
. Dans Unefunge, ces changements de direction ne sont pas pris en charge, donc l'interpréteur inverse la direction et exécute la section précédemment ignorée dans les commentaires. Dans Befunge / Trefunge, il continue vers la gauche.Dans Befunge 97, la
m
commande n'est pas prise en charge et est donc ignorée, donc l'interprète continue le long de la première ligne. En 98, il est uniquement en 3D, donc il se reflète dans Befunge (2D) et l'interprète suit lev
à droite jusqu'à la quatrième ligne. Dans Trefunge (3D), c'est une branche haute-basse qui transfère un niveau le long de l'axe z vers le deuxième plan.Donc, à part le cas Unefunge, nous avons chaque version rassemblant leur paire de chaînes à partir d'une ligne distincte avant d'être dirigée vers l'une des
&
commandes pour obtenir l'entrée utilisateur. Ces chemins de code fusionnent ensuite tous via les^
commandes de la deuxième colonne, dirigeant le flux du programme vers le haut à travers le haut du champ de lecture, puis se retournant vers le bas.Enfin, nous avons la
^_^
séquence qui décide du chemin à suivre en fonction de l'entrée de l'utilisateur. Si 0 , nous allons directement à la séquence de sortie (>:#,_
) en écrivant la fausse chaîne. Si 1 , nous exécutons d'abord>_
ce qui efface la première chaîne de la pile, et sortons donc la vraie chaîne.la source
5 langues, 249 octets
Remarque: les caractères
\r
et\e
sont des sauts de ligne et des caractères d'échappement, mais\x5b
doivent être tels quels, sinon Ruby se plaint de la classe de caractères dans l'expression régulière.Un peu tard pour la fête, et pas du tout un gagnant, mais j'ai commencé à travailler sur un polyglotte pour le défi d'action de grâce et j'ai senti qu'il pourrait être un peu tard, alors je l'ai transformé en ceci!
Explication
Python:
True
/False
Nous avons mis ici
q
à ce0//1
qui est0
, nous avons une'''
chaîne qui contient la plupart des autres codes, stocker un tableau contenantFalse
etTrue
et indicies0
et1
respectivement attribuer l'entréeb
(qui devrait être0
ou1
pour signifierFalsy
etTruthy
) , puisprint
l'b
e indicea
, montrantFalse
ouTrue
.Rubis:
Vrai
/Faux
Comme avec le script Python, nous définissons la variable
q
, mais dans Ruby, elle est définie sur0 / /1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord
, car Ruby le décompose0/
en "zéro divisé par" et le suivant/
en "début de littéral regex". En utilisant ce littéral, je peux cacher le code PHP et commencer celui de Python'''
. Nous devons ajouter.to_s.ord
parce que l'opérande droit/
doit être aFixnum
. Après cela, nous définissons une fonctioninput()
et la variableTrue
etFalse
pour contenir leurs homologues français et enfin commencer une chaîne'
qui continue sur la ligne suivante. Enfin , nous créons un tableaua
qui contient"Vrai"
et"Faux"
et les sélectionner à l' aide duinput()
numéro ed0
ou1
.Perl:
Waar
/Vals
En Perl, les
q=..=
,q+...+
et lesq-...-
blocs sont cités littéraux à l' aide délimiteurs inhabituelles, dans le code ci - dessus , je l' ai remplaçons par'...'
. La plupart du code est contenu dans une chaîne littérale, mais nous définissonssub a
(qui contient un<><
!) Qui vérifie siSTDIN
est inférieur à1
, en retournant soitWaar
ouVals
. Leprint(a[b])
faitprint
est le résultat de l' appel lesub
a
avec et argument[b]
qui est un arrayref qui contient le mot nub
.JavaScript:
Vero
/Falso
La première ligne est principalement commentée par la division
0//1
(//
c'est le commentaire de ligne en JavaScript), nous avons donc juste misq
à0
. La ligne suivante traite de la mise en correspondance des fonctions JS avec leurs noms Python et la définition de variablesTrue
etFalse
d'être les chaînes italiennes.Enfin, nous exécutons la même chose que le code Ruby, en définissant a sur un tableau de mots italiens et en sélectionnant en utilisant uninput
de0
ou1
.PHP:
Ekte
/Falsk
Étant donné que PHP exécute uniquement le code entre
<?...?>
tout le reste est sorti tel quel, notre code ici imprime simplement un saut de ligne (pour nous remettre au début de la ligne actuelle) et la séquence d'échappement ANSI pour effacer jusqu'à la fin du courant ligne, suivie deEkte
ouFalsk
selon que le caractère d'entrée (0
ou1
) est vrai ou faux.la source
Pyth, Python - 28 octets
la source
.q
et en ajoutant un;
à la fin.C #, Java, 104 octets
Golfé:
Non golfé:
Tester:
C #
Java
Explication:
Lors de l'appel
ToString()
outoString()
d'un booléen en C # et Java respectivement, C # imprime la chaîne avec une première lettre majuscule,True
etFalse
, mais Java imprime tout en minusculestrue
etfalse
.la source
2 langues, 60 octets
Les langues sont:
true
false
waar
onwaar
Remarque: il y a des octets UTF-8, pas des octets Jelly.
la source
Lua / JavaScript, 68 octets
Je ne sais pas pourquoi je l'ai joué au golf; J'en avais juste envie.
la source
JavaScript / BF
Dans ces deux langues, aucune entrée n'est considérée comme fausse et toute entrée est considérée comme vraie.
Lorsque vous voyez la structure du programme pivotée de 90 degrés vers la gauche, les symboles BF ressemblent à des tours dans une ville :)
Essayez-le en ligne (BF true testcase)!
Essayez-le en ligne (faux test BF)!
Explication
Javascript
Si le
prompt
est vrai (c'est-à-dire non vide carprompt
renvoie une chaîne), des sortiestrue
ou bien des sortiesfalse
.BF
Sorties
sand
(danois pour true) s'il y a une entrée, ou bien sortiesusand
(false) si l'entrée est vide.TL; DR Si l'entrée n'est pas vide (c'est-à-dire vrai), ne sortez rien. Si l'entrée est vide (c'est-à-dire faux), la sortie
u
. Ensuite, que l'entrée soit vraie ou fausse, sortezsand
.Je me suis inspiré de https://esolangs.org/wiki/Brainfuck_algorithms avec lequel j'ai construit la logique de mon programme.
Prenez votre avis. Si l'entrée n'est pas vide, incrémentez la mémoire, appelons cette cellule "Cellule A". Fin de l'instruction if
Compare la valeur de "Cellule A" avec
0
. S'ils sont égaux, que "Cell B" soit1
, ou bien que ce soit0
.Si "Cell B" est 1, alors sortez
u
. Fermer l'instruction ifProduction
sand
la source
u
condition, nons
?u
conditionnelles
condition; pourriez-vous résoudre ce problème pour plus de clarté? Belle réponse quand même.If input is empty (ie false), output `s`.
Je pense que c'est la partie qui a troublé Alex L.Haskell, JavaScript, Python, 115 octets
la source