Construa um poliglota alfabetizado
Como o TIO pode mostrar , todas as letras do alfabeto latino são representadas quando se trata de idiomas. Para cada letra, há pelo menos 1 linguagem de programação cujo nome começa com essa letra. Sua tarefa é criar um poliglota para demonstrar isso.
Seu programa deve ser executado em 2 a 26 idiomas diferentes, cada um deles começando com uma letra diferente. No entanto, se o seu programa for executado em \$N\$idiomas, os idiomas usados devem ter o primeiro \$N\$letras do alfabeto como a primeira letra de seus nomes. Portanto, se seu programa é executado em 5 línguas, as línguas deve começar com A
, B
, C
, D
e E
. (por exemplo, A Pear Tree , BrainSpace , C ++ , Dash e Enlist )
Seu programa não deve aceitar nenhuma entrada e produzir uma string constante: o alfabeto (sem maiúsculas e minúsculas, na ordem), mas com a letra do nome do idioma removida. Portanto, o idioma que começa com A
deve ser impresso BCDEFGHIJKLMNOPQRSTUVWXYZ
(ou a versão equivalente em minúsculas). A caixa não precisa ser consistente para idiomas diferentes, mas sim entre execuções no mesmo idioma.
Qualquer idioma é um jogo justo, desde que nenhuma letra seja repetida. Isso exclui o uso de versões diferentes para a maioria das linguagens (por exemplo, Python 2 vs Python 3), mas isso é apenas uma consequência de ter letras exclusivas. Seriamente e Realmente, por exemplo, são considerados versões diferentes, mas podem ser usados na mesma resposta, pois começam com caracteres diferentes.
Se estiver usando linguagens com páginas de código personalizadas, então, como é padrão, os bytes devem corresponder entre os programas, não os caracteres.
As inscrições são pontuadas pelo número de idiomas usados, com um desempate do código mais curto.
Respostas
AsciiDots , Bash , Cardinal , Dash , evil , fish , goruby , Haystack , Implicit , J-uby , ksh , Ly , mksh , Numberwang , OSH , Python 3 , QuadR , Ruby , Super Stack! , Taco , Unefunge-98 (Pyfunge) , V (Vim) , Wumpus , xonsh , yash , Zsh , 1009 bytes
9 shells, 3 Rubies, algumas linguagens 2D (e 1D!) E muitas linguagens que aprendi apenas para este desafio. Gostei muito desse desafio e aprendi alguns novos idiomas e recursos. Eu gostei de encontrar um caminho mais curto do que apenas a string bruta em alguns idiomas (em alguns idiomas, gerar a string parecia mais longo) e tentar reutilizar a s
variável tantas vezes quanto possível foi divertido também. Também tentei manter a contagem de bytes o mais baixa possível. Se eu encontrar o tempo e a inclinação, me pergunto se poderia começar a adicionar as letras do alfabeto ao final ... Conversa maluca ...
' # "194940711909711999999999999940391270919999999999994039127zaeeeawawawawavaeeaaaaamvawvusb"' #165#1#1;.040;"ZYXWVTSRQPONMLKJIHGFEDCBA"8 3*k,q"ABCDEFGIJKLMNOPQRSTUVWXYZ"o¡72"8:é9:é8++:90+1®;65µ
'\&p"A""K"R"M""Z"R&o;';# x%"ABDEFGHIJKLMNOPQRSTUVWXYZ"x.-$"BCDEFGHIJKLMNOPQRSTUVWXYZ" 0 65 65 if pop dup dup 83 sub if pop outputascii 0 fi pop 1 add dup 91 sub fi "ZYXVUTSRQPONMLKJIHGFEDCBA"#25&o @"ABCDEFGHIJKLMNOPQRSUVWXYZ" s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#' 0//1; try:echo -n;print(s[0:23]+"YZ"); except:print(s[0:15]+s[16:]);"""/.__id__;begin ~:*;puts s.gsub ?J,"";rescue;begin A;puts s.gsub ?G,"";rescue;puts s.gsub ?R,"";end;end;' [ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;';/
('Q'⎕R'')⎕A⋄'\} #<esc>ggdG¬AZ:s/#\|V//"""#\'⍵
AsciiDots
O código relevante é:
.-$"BCDEFGHIJKLMNOPQRSTUVWXYZ"
Isso precisa ser embrulhado em [
... ]
para evitar que o [Brainfuck estendido Tipo I] jogue lixo antes da corda desejada devido ao .
.
Experimente online!
Bash
O código relevante é:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
Essa primeira linha é definida $s
como o alfabeto completo em maiúsculas, portanto, -z $s
é falsa e foi pulada. não está definido $status
, \e
é tratado como um escape, não um \
e e
, $BASHPID
é definido, $_OVM_PATH
não $USER_ID
é e não é definido, portanto, B
é substituído pela string vazia em $s
( ${s/B/}
) e echo
eliminado.
Experimente online!
Cardeal
O código relevante é:
x%"ABDEFGHIJKLMNOPQRSTUVWXYZ"x
Os cursores são gerados a partir de %
e são encerrados por x
s. Isso precisava ser movido ligeiramente para evitar saída adicional.
Experimente online!
Traço
O código relevante é:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
De acordo com o Bash, este primeiro é definido $s
como o alfabeto completo em maiúsculas. então -z $s
é falso. $status
está vazio, \e
é uma sequência de escape e não corresponde e
, mas $-
está vazio no Dash para que o condicional seja atendido e echo
saiamos ABC
seguido por $s
com o prefixo ABCD
removido ( ${s#ABCD}
).
Experimente online!
mal
O código relevante é:
zaeeeawawawawavaeeaaaaamvawvusb
Experimente online!
peixe
O código relevante é:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
Em peixes, as variáveis não são atribuídas por meio da s=...
sintaxe, portanto, $s
são vazias, o que significa que a primeira condicional é atingida, a string necessária é echo
removida e exit
chamada.
Experimente online!
goruby +--disable=gems
Isso não está disponível no TIO, mas é distribuído com o código-fonte Ruby oficial e pode ser compilado (após o normal autoconf
e as ./configure
etapas) com make goruby
. Testado na versão ruby 2.8.0dev (2020-08-24T10:24:07Z master 1eb1add68a) [x86_64-linux]
. O código relevante é:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0
0//.../.__id__;begin ~:*&?,;puts s.gsub ?J,"";rescue;begin A;puts s.gsub ?G,"";rescue;puts s.gsub ?R,"";end;end
Palheiro
O código relevante é:
"ABCDEFGIJKLMNOPQRSTUVWXYZ"o
que o
utiliza a string necessária.
Experimente online!
Implícito
O código relevante é:
¡72"8:é9:é8++:90+1®;65µ
Isso empurra o intervalo de 1
.. 72
e junta os últimos 8 itens da pilha em uma string, duplica o topo da pilha, incrementa todos os pontos de código em 9, duplica a pilha novamente, incrementa todos os pontos de código na string em 8, empurra 90
para a pilha e concatena tudo, inverte a pilha, retira os 65 primeiros elementos e imprime a pilha.
Experimente online!
J-uby
O código relevante é:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0
0//.../.__id__;begin ~:*&?,;puts s.gsub ?J,"";rescue;begin A;puts s.gsub ?G,"";rescue;puts s.gsub ?R,"";end;end
Isso compartilha a declaração de s
com os shells e outras implementações Ruby .gsub
es J
da string antes de puts
carregá-la, desde ~:*&?,
que não cause um erro.
Experimente online!
ksh
O código relevante é:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
$s
é definido como os outros reservatórios e $status
está vazio, \e
não corresponde e
, $-
não está vazia, mas $BASHPID
é tão $s
é echo
ed remoção K
( ${s/K/}
).
Experimente online!
Ly
O código relevante é:
&p"A""K"R"M""Z"R&o;
que primeiro limpa a pilha e, em seguida, empurra as R
pontas de A
- K
e M
- Z
, antes de &o
colocar o conteúdo da pilha e terminar ( ;
).
Experimente online!
mksh
O código relevante é:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
De acordo com os shells anteriores, a primeira linha é definida $s
como o alfabeto completo em maiúsculas, então -z $s
é falsa e pulada. não está definido $status
, \e
é tratado como um escape, não um \
e e
, $BASHPID
é definido, $_OVM_PATH
não $USER_ID
é e é definido, portanto, M
é substituído pela string vazia em $s
( ${s/M/}
) e reproduzida. Testado na versão 58-1
.
Numberwang
O código relevante é o grande número, já que Numberwang é apenas uma transliteração de brainfuck:
194940711909711999999999999940391270919999999999994039127
>+[+[<]>>+<+]>>+++++++++++++[<.+>-]<+>++++++++++++[<.+>-]
Há uma pequena quantidade de trabalho para equilibrar 4
s e 7
s em todo o resto do código, além de garantir que as coisas apareçam na ordem certa, mas nada importante. Pode ser capaz de salvar alguns bytes movendo coisas por aqui ...
Experimente online!
OSH
Oh, olhe, outra concha! De acordo com os outros, o código relevante é:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
A principal diferença aqui é que $_OVM_PATH
é definido no OSH, mas não no Bash, então a string correta é echo
editada usando tr
para remover o O
.
Experimente online!
Python 3
O código relevante é:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0
0//1;
try:echo -n;print(s[0:23]+"YZ");
except:print(s[0:15]+s[16:]);"""..."""
Isso compartilha a declaração de s
com os shells e Rubies e também é compartilhada com xonsh. O código em try
falhará em Python ( echo -n
), mas funciona em xonsh, então o código em except
é chamado, imprimindo fatias de s
.
Experimente online!
QuadR
O código relevante é:
('Q'⎕R'')⎕A⋄'...'⍵
No QuadR, quando a linha final contém ⍵
todas as linhas precedentes, há padrões para combinar e a linha final é uma função de transformação. Esta função de transformação específica apenas pega o alfabeto ⎕A
e ⎕R
substitui 'Q'
com ''
, o resto da função após o separador de instrução ( ⋄
) é apenas para fechar todas as outras strings / comentários / literais regex e comentar o final da função.
Experimente online!
Rubi
O código relevante é compartilhado com J-uby e goruby:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0
0//.../.__id__;begin ~:*&?,;puts s.gsub ?J,"";rescue;begin A;puts s.gsub ?G,"";rescue;puts s.gsub ?R,"";end;end
Como os outros Rubies, s
é compartilhado a partir dos shells, mas no Ruby aqui, ambas as outras cláusulas ~:*&?,
e A
irão gerar exceções para que a instrução final seja executada, substituindo R
- s
a pela string vazia.
Experimente online!
Super Stack!
O código relevante é:
0 65 65 if pop dup dup 83 sub if pop outputascii 0 fi pop 1 add dup 91 sub fi
Isso empurra 0
e 65
(duas vezes) para a pilha, então if
(que é "enquanto o topo da pilha é verdadeiro" - diferente de zero), pop
é o elemento superior, dup
licita o novo elemento superior duas vezes, empurra 83
e sub
retira-o do próximo item da pilha para baixo . Em seguida, if
a pilha é truthy (por exemplo, não é 83 - S
), pop
isto, outputascii
, impulso 0
e terminam com fi
(uma vez que a pilha é agora 0
). Finalmente, pop
, impulso 1
, add
os dois elementos de topo em conjunto (incremento), dup
licate, do impulso 91
e sub
do trato, finalizar o circuito, o qual irá acontecer se o caractere última saída era 90
( Z
).
Experimente online!
TacO
O código relevante é:
@"ABCDEFGHIJKLMNOPQRSUVWXYZ"
Experimente online!
Unefunge-98 (PyFunge)
O código relevante é:
"ZYXWVTSRQPONMLKJIHGFEDCBA"8 3*k,q
Existem alguns comandos antes desta que são executados e coisas empurrar para o stack, mas basicamente isso só empurra os caracteres necessários no sentido inverso, em seguida, empurra 8
e 3
e multiplica-los. O k
comando repete o próximo comando TOS ( 24
) + 1
vezes, gerando a string necessária e os q
uits.
Experimente online!
V (vim) +-v
O código relevante é:
<esc>ggdG¬AZ:s/V//"...
O que deixa primeiro o modo de inserção ( <esc>
), vai para a primeira linha de texto ( gg
), apaga para a última linha ( dG
), insere as letras de A
a Z
( ¬AZ
) e, finalmente, substitui V
pela string vazia ( :s/V//
). O resto da linha está comentado ( "
).
Experimente online!
Wumpus
O código relevante é:
...#220#1#1;.
..."ZYXVUTSRQPONMLKJIHGFEDCBA"#25&o @
Os #220#1#1
empurrões 220
, 1
, 1
para a pilha, em seguida, ;
aparece fora o último item, em seguida, chamadas .
que salta o IP para a linha 1, char 220 e executa. Precisamos apenas porque o TacO exige apenas um @
no código.
Experimente online!
xonsh
O código relevante é:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0
0//1;
try:echo -n;print(s[0:23]+"YZ");
except:print(s[0:15]+s[16:]);"""..."""
xonsh é um shell baseado em Python, portanto, o código é compartilhado com Python 3 e usa a mesma s
var dos shells e Rubies. Eu usei uma técnica que usei em muitos poliglotas com Ruby para obter esse código. 0//1
É a divisão de inteiros e echo -n
funciona bem, já que xonsh é um shell, então a execução da impressão da parte necessária da substring s
com a string literal YZ
concatenada, o resto do programa é uma """
string.
yash
O código relevante é:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
Como os outros shells, mas em yash, a sequência \e
não é uma sequência de escape e, portanto, é apenas a string \e
que corresponde, por e
isso $s
é impressa substituindo Y
a string vazia ( ${s/Y/}
).
Experimente online!
Zsh +--continueonerror
O código relevante é:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
Zsh é menos tolerante a erros em um script do que os outros shells e, portanto, precisa do --continueonerror
sinalizador. Em Zsh $status
também é definido (em peixes também) quando um comando falha, então se $status
for 1
, então $s
é echo
editado, substituindo Z
a string vazia ( ${s/Z/}
).
Experimente online!
Suite de validação.
Arcyou, Braille, COW, Deadfish ~, Emoji, Forked, Gaot ++, Hyper-Dimensional Brainfuck, 3389 Bytes
"BCDEFGHIJKLMNOPQRSTUVWXYZ";11+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+@1+@1+@1+@1+@1+1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@&------------------------.+.+.+.+.+.+.++.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiciciciicicicicicicicicicicicicicicicicicicicicicich⠆⠄⡒⡆⡘⠀⢕⢍⢅⠽⠵⠭⠥⠝⠕⠍⠅⢼⢴⢬⢤⢜⢔⢌⢄⠼⠴⠬⠤⠜⠌💬ABCDFGHIJKLMNOPQRSTUVWXYZ💬➡MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO Moo MoO MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet bleeeeet
Experimente online em Arcyou , Braille , COW , Deadfish ~ , Emoji , Forked , Gaot ++ e Hiper-Dimensional Brainfuck .
Vou explicar cada parte abaixo:
Arcyou
"BCDEFGHIJKLMNOPQRSTUVWXYZ";
Imprime a string implicitamente e ignora tudo depois com um comentário ;
.
Braille
⠆⠄⡒⡆⡘⠀⢕⢍⢅⠽⠵⠭⠥⠝⠕⠍⠅⢼⢴⢬⢤⢜⢔⢌⢄⠼⠴⠬⠤⠜⠌
Todos os símbolos não braille são ignorados, portanto, esta é uma escolha fácil.
VACA
MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO Moo MoO MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo
Todos os tokens não moo são ignorados, tornando isso fácil também. Também usamos um moo-exit ( Moo
) para que, se acidentalmente tivermos um token moo no futuro, não o executemos.
Deadfish ~
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiciciciicicicicicicicicicicicicicicicicicicicicicich
Usado i
para incrementar, o
produzir e h
interromper, o que significa que não interpretamos tokens futuros.
Emoji
💬ABCDFGHIJKLMNOPQRSTUVWXYZ💬➡
Todos os tokens não emoji são ignorados, tornando esta outra escolha fácil.
Bifurcado
11+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+@1+@1+@1+@1+@1+1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@&
Esta linguagem tem muitos tokens, mas pára no &
significado que podemos inserir nela mais cedo. O "BCDEFGHIJKLMNOPQRSTUVWXYZ";
na frente do Arcyou funciona como um ambiente autônomo.
Gaot ++
baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet bleeeeet
Todos os tokens que não são ovelhas são ignorados, tornando esta outra escolha fácil. Espero que as vacas e as ovelhas possam se dar bem.
Brainfuck Hiper-Dimensional
11+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+@1+@1+@1+@1+@1+1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@&------------------------.+.+.+.+.+.+.++.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.
Basicamente, o cérebro fode com algum comando extra que podemos ignorar. Observe que usamos parte da solução bifurcada como iniciador.
Aheui (esotope) , Brainfuck , Canvas , 127 bytes
밤밦뚜
나타뺘우차빠빠빠
떠벓벓벅멓더희뎌
>+[+[<]>>+<+]>.+>>++++[<++++++>-]<[<+.>-]
ABDEFGHIJKLMNOPQRSTUVWXYZ
Experimente online em Aheui , Brainfuck e Canvas !
Apenas uma solução trivial de três linguagens que ignoram totalmente o código uma da outra.
- Aheui ignora todos os caracteres não coreanos (Hangul).
- Brainfuck ignora todos os personagens que não são instruções Brainfuck
+-.,<>[]
. - O Canvas trata todos os caracteres ASCII como literais de string e imprime a última linha.
axo , Befunge-93 , Canvas , Deadfish ~ , 104 bytes
"%A","EDC",,,"F">::,"Z"-|
{>B">[[("Z"-#%\{i}}dddci@
cici^icici +1<{c^i}{ci+1<}
ABDEFGHIJKLMNOPQRSTUVWXYZ
Experimente axo online! Experimente o Befunge-93 online! Experimente o Canvas online! Experimente Deadfish ~ online!
Explicações
axo
"%
>B">[[("Z"-#%\
^ +1<
Ele ativa o modo de string, pressiona o B e começa a imprimir e incrementar esse B até que se torne um Z.
Befunge-93
"%A","EDC",,,"F">::,"Z"-|
@
^ +1<
Imprima ACDE, pressione um F, imprima e incremente até que seja um Z.
Tela de pintura
O canvas imprime a última linha.
Deadfish ~
{{i}}dddciciciicicic{ci}{ci}
AlphaBeta , brainfuck , couve-flor , Dreaderef , emotifuck , 413 bytes
ebbbkiigZUaCILQ++++++++[>++++++++<-]>+.+<+++++[<+++++>-]<-[->>+.<<]deref16 4deref?7bool?9?7 13chro?add1 21 16deref100-1"abcefghijklmnopqrstuvwxyz"\;(print abdefghijklmnopqrstuvwxyz)🔥😂😂😂😂😂😂😂😂🌚🔥😂😂😂😂😂😂😂😂💯💩🐸🔥😂💞😂💞😂💞😂💞😂💯😂😂😂🌚💯😂😂😂😂😂😂😂🔥💩🐸💯🌚💩🔥🔥😂💞💯💯🐸
Experimente AlphaBeta , brainfuck , couve-flor , Dreadref , emotifuck online!
Alpha Beta
A parte relevante é
e ;add 100 to register 1
bbb ;subtract 3 from register 1 (=97)
k ;add 100 to register 2
ii ;add 20 to register 2
g ;add 1 to register 2 (=121)
ZU ;add 10 to position register
;loop: prints 'bcd...xyz'
a ;add 1 to register 1
C ;set value of register to register 1
I ;set value of memory to register 3
L ;print value in memory as char
Q ;if reg1 <= reg2, jump to stored position (10)
Não há comentários no AlphaBeta , o que significa que a maioria das letras maiúsculas deve ser evitada, pois quebram coisas e os erros são impressos no stdout .
brainfuck
++++++++[>++++++++<-]>+ ;calculate 65
.+ ;print A and increment
<+++++[<+++++>-]<- ;push 24
[->> <<] ;24 times:
+. ; increment and print
Já que brainfuck ignora quaisquer outros personagens, isso não causa mais problemas.
Couve-flor
Não encontrei nenhuma boa documentação sobre este idioma, então isso foi principalmente tentativa e erro:
\; ;escaped comment?
(print abdefghijklmnopqrstuvwxyz) ;print string
Dreaderef
A parte relevante é
deref16 4deref?7bool?9?7 13chro?add1 21 16deref100-1"abcefghijklmnopqrstuvwxyz"\;
Isso foi adaptado do Hello World na documentação . Os ;
comentários saem do resto da linha.
emotivo
🔥😂😂😂😂😂😂😂😂🌚🔥😂😂😂😂😂😂😂😂💯💩🐸🔥😂💞😂💞😂💞😂💞😂💯😂😂😂🌚💯😂😂😂😂😂😂😂🔥💩🐸💯🌚💩🔥🔥😂💞💯💯🐸
é equivalente ao programa brainfuck
++++++++[>++++++++<-]>+.+.+.+.+<+++[<+++++++>-]<[->>+.<<]
AWK , Bash , 68 bytes
echo ACDEFGHIJKLMNOPQRSTUVWXYZ
END{print"BCDEFGHIJKLMNOPQRSTUVWXYZ"}
Experimente online (AWK)!
Experimente online (Bash)!