Depois de toda a diversão que tivemos com os desafios poliglotas no passado ( recente ), que tal um desafio em que a saída possa estar em dois idiomas?
Sua resposta precisa aceitar entrada booleana b
e gerar o texto "true"
ou "false"
. O mesmo código precisa de saída, quando executado em outro idioma, "waar"
ou "onwaar"
ou qualquer outra tradução de true
e false
.
Entrada
- A entrada é uma verdade / falsey claramente distinguível. Admissíveis são os valores reais T / F, um bit, int ou string (vazia).
- A entrada precisa ser a mesma para todas as partes do seu envio.
Resultado
A saída pode ser retornada por uma função, gravada
STDOUT
, colocada em uma janela pop-up, impressa em 3D e enviada por correio etc.A saída precisa representar o estado de
b
. Portanto, um 'verdadeiro' precisa produzir 'verdadeiro', 'waar' ... e 'falsey' deve levar a 'falso', 'onwaar' etc.Idiomas diferentes podem usar métodos de saída diferentes.
Línguas utilizadas
Uma de suas saídas DEVE ser
"true"
e"false"
.Versões diferentes de linguagens de programação contam como linguagens diferentes para esse desafio.
Dialetos diferentes de uma língua humana contam como línguas diferentes para esse desafio.
Você pode estender o poliglota para mais de duas linguagens de programação. Toda linguagem de programação precisa produzir uma linguagem humana distinta.
A resposta com mais idiomas incorporados será declarada a vencedora. Quando empatado, o bytecount é considerado.
fonte
"True"
e"False"
aceitáveis no lugar do necessário"true"
e"false"
?Respostas:
Dyalog APL ,
243237 bytes : 14 idiomas, extensível a 131 *-6 bytes graças a Soaku .
Requer
⎕IO←0
qual é o padrão em muitos sistemas. Solicita a inserção de0
ou1
.Dependendo da versão (9.0 a 16.0, com versões secundárias), ela é impressa em inglês, espanhol, português, alemão, vietnamita, francês, turco, italiano, polonês, sundanês, filipino, ioruba, uzbeque ou romeno, embora sem sinais diacríticos.
⎕AV⍳'ëáàÆÅÄòðÓÈÇ'
em que os índices da Um Tomic V ector (151 142 141 133 131 122 121 132 111 102 101 96)((
...)⍳
...)
encontre a posição de⍎
o avaliado⎕D∩⍨
interseção de D igits e4↑
os quatro * primeiros caracteres de1⊃
o segundo elemento de#⎕WG'APLVersion'
o número da versão(
...)⊃
então use isso para escolher entre⎕⊃
o elemento input'th (0: primeiro; 1: segundo) des¨
a função s (que definiremos em breve) aplicada a cada um⌽
o inverso de(s←{
...})
s aplicado a - onde s é definido como1↓¨
o primeiro caractere caiu de cada um⍵⊂⍨
o argumento particionou onde⍵=
os caracteres do argumento são iguais a⊃⍵
o primeiro caractere do argumento';,true,adevarat,
...,falsch',
essa sequência anexada a18⍴',falso'
dezoito caracteres retirados ciclicamente dessa sequência* Desde a versão 12.1, o número da versão inclui o número da compilação; portanto, aumentando o número de caracteres extraídos dessa sequência, é fácil cobrir todos os 131 idiomas de script latinos .
fonte
prawdziwy
paraprawda
efalszywy
parafalsz
. As formas mais curtas se encaixam melhor aqui e oferecem uma pontuação melhor.6 idiomas, 169 bytes
Espera
0\n
ou1\n
como entrada e imprime palavras em:vals/waar
),faux/vrai
),false/true
),usant/sant
),usand/sand
),falso/vero
).fonte
print
afirmação!Todos os Fungos, 6 idiomas, 146 bytes
💥 Agora em 3D! 💥
Para maior clareza, separei os dois planos de código para que você possa ver como eles estão em camadas. No disco, esses dois blocos seriam separados com um caractere de alimentação de formulário no final da linha acima.
As regras diziam que versões diferentes de um idioma contam como idiomas separados, então essa é seis versões do Funge / Befunge. :)
Graças a Dennis , todas as versões do Befunge agora podem ser testadas on-line no TIO . No momento, não existem implementações em funcionamento das variantes Unefunge e Trefunge, portanto, para aquelas que eu recomendaria Rc / Funge .
A
é ignorado no Befunge 93 e 96, mas é o comando Sobre o rosto em 97 e não é suportado em 98 e, portanto, reflete. Isso significa que 93 e 96 seguemv
para baixo, enquanto 97 e 98 envolvem o lado oposto do campo de jogo.No Befunge 96, um
;
espaço seguido no início da linha o marca como um comentário, para que a linha seja ignorada e o intérprete continue>
na terceira linha. Em 93, porém, o intérprete segue o>
da segunda linha.O caminho 97/98 continua na primeira linha da direita para a esquerda, passando por cima da seção dentro dos
;
marcadores do comentário, pontes o&
comando, acabou atingindo a seqüência U-bendv<^<
. No Unefunge, essas mudanças de direção não são suportadas; portanto, o intérprete inverte a direção e executa a seção anteriormente ignorada nos comentários. Em Befunge / Trefunge, continua para a esquerda.No Befunge 97, o
m
comando não é suportado e, portanto, é ignorado; portanto, o intérprete continua na primeira linha. Em 98, é apenas 3D, portanto reflete em Befunge (2D) e o intérprete seguev
à direita até a quarta linha. No Trefunge (3D), é um ramo Alto-Baixo que transfere um nível ao longo do eixo z para o segundo plano.Portanto, além do caso Unefunge, cada versão reúne seu par de strings de uma linha separada antes de ser direcionada a um dos
&
comandos para obter a entrada do usuário. Esses caminhos de código então todos se fundem por meio dos^
comandos da segunda coluna, direcionando o fluxo do programa para cima através do topo do campo de jogo, passando para o fundo novamente.Finalmente, temos a
^_^
sequência que decide qual caminho seguir com base na entrada do usuário. Se 0 , vamos direto para a sequência de saída (>:#,_
) escrevendo a string falsa . Se 1 , primeiro executamos o>_
que limpa a primeira string da pilha e, assim, produz a string verdadeira .fonte
5 idiomas, 249 bytes
Nota: o
\r
e\e
são literais caracteres de linha de alimentação e de escape, mas\x5b
tem que ser como é caso contrário Rubi reclama da classe de caracteres na expressão regular.Um pouco atrasado para a festa, e não um vencedor de forma alguma, mas comecei a trabalhar em uma poliglota para o desafio de ação de graças e senti que poderia ser um pouco tarde, então transformou-a nisso!
Explicação
Python:
True
/False
Aqui nós definir
q
a0//1
qual é0
, em seguida, que tem uma'''
cadeia que contém a maior parte do outro código, armazenar uma matriz contendoFalse
eTrue
e indicies0
e1
, respectivamente, atribuir a entrada parab
(que deve ser0
ou1
para significarFalsy
eTruthy
) em seguida,print
ob
índice de po dea
, mostrandoFalse
ouTrue
.Ruby:
Vrai
/Faux
Assim como no script Python, definimos a variável
q
, mas no Ruby isso é definido0 / /1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord
como, pois o Ruby divide isso0/
como "zero dividido por" e o seguinte/
como "início do regex literal". Usando esse literal, sou capaz de ocultar o código PHP e começar o Python'''
. Temos que adicionar.to_s.ord
porque o operando certo/
deve ser aFixnum
. Depois disso, definimos uma funçãoinput()
e a variávelTrue
eFalse
para conter seus equivalentes franceses e, finalmente, iniciamos uma string'
que continua na próxima linha. Finalmente, criar uma matriza
que contém"Vrai"
e"Faux"
e seleccioná-las utilizando oinput()
número ed0
ou1
.Perl:
Waar
/Vals
No Perl, os blocos
q=..=
,q+...+
eq-...-
são citados literais usando delimitadores incomuns, no código acima, eu os substituí por'...'
. A maior parte do código está contida em uma string literal, mas definimossub a
(que contém um<><
!) Que verifica seSTDIN
é menor que1
, retornandoWaar
ouVals
. Naprint(a[b])
verdade,print
é o resultado da chamada desub
a
with e argumento,[b]
que é um ArrayRef que contém a palavra simplesb
.JavaScript:
Vero
/Falso
A primeira linha é principalmente comentada pela divisão
0//1
(//
é o comentário da linha em JavaScript), então definimosq
como0
. A próxima linha lida com o mapeamento das funções JS para seus nomes Python e para definir variáveisTrue
eFalse
para ser as seqüências italianas; finalmente, executamos o mesmo que o código Ruby, configurando a para uma matriz de palavras italianas e selecionando usando uminput
de0
ou1
.PHP:
Ekte
/Falsk
Como o PHP executa apenas o código entre
<?...?>
tudo o que é produzido, o código aqui simplesmente imprime um feed de linha (para nos colocar de volta no início da linha atual) e a seqüência de escape ANSI para limpar até o final da atual linha, seguida por umEkte
ouFalsk
dependendo de o caractere de entrada (0
ou1
) ser verdadeiro ou falso.fonte
Pyth, Python - 28 bytes
fonte
.q
e adicionando um;
no final.C #, Java, 104 bytes
Golfe:
Ungolfed:
Teste:
C #
Java
Explicação:
Ao chamar
ToString()
outoString()
em um booleano em C # e Java, respectivamente, o C # imprime a string com uma primeira letra maiúsculaTrue
eFalse
, mas Java imprime tudo em letras minúsculastrue
efalse
.fonte
2 idiomas, 60 bytes
Os idiomas são:
true
false
waar
onwaar
Nota: Existem bytes UTF-8, não bytes Jelly.
fonte
Lua / JavaScript, 68 bytes
Não sei por que eu jogava golfe; Eu apenas senti vontade.
fonte
JavaScript / BF
Nos dois idiomas, nenhuma entrada é considerada falsa e qualquer entrada é considerada verdadeira.
Quando você vê a estrutura do programa girada 90 graus para a esquerda, os símbolos BF parecem torres em uma cidade :)
Experimente on-line (BF true testcase)!
Experimente online (BF false testcase)!
Explicação
Javascript
Se
prompt
for verdadeiro (ou seja, não estiver vazio porqueprompt
retorna uma string), saitrue
, ou então saifalse
.BF
Saídas
sand
(dinamarquês para true) se houver uma entrada ou saídasusand
(false) se a entrada estiver vazia.TL; DR Se a entrada não estiver vazia (ou seja, verdadeira), não produza nada. Se a entrada estiver vazia (ou seja, falsa), faça a saída
u
. Então, independentemente de a entrada ser verdadeira ou falsa, imprimasand
.Eu me inspirei em https://esolangs.org/wiki/Brainfuck_algorithms com o qual construí a lógica do meu programa.
Tome entrada. Se a entrada não estiver vazia, aumente a memória, vamos chamar esta célula "Célula A". Terminar declaração if
Compara o valor da "Célula A" com
0
. Se forem iguais, deixe a "Célula B" ser1
, ou então seja0
.Se "Célula B" for 1, então faça a saída
u
. Fechar instrução ifResultado
sand
fonte
u
condicionalmente, nãos
?u
condicionalmentes
condicionalmente; você poderia consertar isso para maior clareza? Boa resposta de qualquer maneira.If input is empty (ie false), output `s`.
Eu acho que essa é a parte que deixou Alex L. confuso.Haskell, JavaScript, Python, 115 bytes
fonte