Nesta pergunta, falarei de programas como strings, são strings de bytes, não caracteres. Como o programa resultante é renderizado ou exibido não é importante para esse desafio, apenas como ele aparece na memória é importante.
Um programa primitivo é um programa que, quando executado, não comete erros, no entanto, sempre que uma substring contínua de tamanho n , quando 1 ≤ n < | S | , é removido.
Um programa imundo é o oposto, é um programa que, quando executado , com erro, no entanto, sempre que uma substring contínua de tamanho n , onde 1 ≤ n < | S | , é removido, não comete erro.
Para este desafio, um erro é uma saída não vazia para STDERR.
Seu desafio é escrever um programa imundo que use o máximo possível de bytes únicos. Isso significa que você receberá um ponto por cada byte exclusivo que aparecer no seu código, com uma pontuação maior sendo melhor. A pontuação máxima é, portanto, 256.
fonte
Respostas:
Unário , 14 bytes
Isso codifica o programa brainfuck
[
, que erros devido a colchetes incomparáveis.Remoção de bytes irá resultar em
>
,<
,+
,-
,.
,,
ou o programa vazio, que são programas brainfuck válidos.fonte
R , 3 bytes
Experimente online!
O nome de um objeto é um programa válido em R.
qrt
não é o nome de nada, portanto, ele retorna um erro.q
é a função sairqr
é a função de decomposição QRrt
é a função de amostragem da distribuição tqt
é o CDF inverso da distribuição tt
é a função de transposiçãofonte
0-9cqtCDFIT
, qualquer programa deve, portanto, começar comcm
,qf
,qr
,qt
,ts
ouIm
. O comprimento três possibilidades sãoqrf
,qrm
,qrt
,qts
etsd
e apenas uma delas é imundo (os outros não pode ser estendido tanto para torná-los imundo como não há funçõesrm*
,rf*
,ts*
,sd*
)Gelatina ,
4 5 6 7 8 1011 bytesExperimente online!
Verifique isso.
Tenta adicionar uma sequência com um número inteiro.
Alguns dos possíveis subprogramas:
“a”
é uma string literal.“a
é a mesma string literal.“
é a string vazia.“a”;
concatena "a" consigo mesmo.... muitos para enumerar todos eles.
fonte
Poliglota, 3 bytes
Trabalha em:
Em JavaScript, lança SyntaxError: token inesperado: literal numérico ou um erro semelhante.
Todas as outras strings são literais numéricos válidos ( 1 , 2 ou 12 ).
No GHCi isso lança
Isso é porque ele tenta aplicar
1
a2
como uma função, no entanto, não pode. Quando qualquer parte disso é removida, ela simplesmente se torna um literal numérico.fonte
Python 2 , 2 bytes
Caractere inesperado após caractere de continuação de linha
\
seguido por qualquer um123456789 #
Experimente online!
Número octal inválido
0
seguido por qualquer um89
Experimente online!
Recuo inesperado
ou
\t
seguido por qualquer um123456789\
Experimente online!
fonte
Python 2/3 , 3 bytes
OU
Experimente online!
No python, "\ f" é igual a "\ x0c" e é um caractere de feed de formulário . Isso significa que indica uma impressora para a próxima linha.
Se uma expressão python começa ou termina com
\f
, ela é basicamente ignorada, assim\f2
como uma expressão válida.O
4
e2
pode ser qualquer número de 0 a 9. No entanto, para o primeiro byte a ser0
válido apenas no Python 2.7.15, como02
foi feita uma declaração legal de2
.Portanto, a própria expressão falha com um erro de sintaxe, porque há dois números separados por um espaço em branco. No entanto, qualquer encurtamento coloca
\f
no começo ou no fim, onde não importa, ou cria42
qual é válido.(Vale a pena notar que no IDLE esse arquivo é aberto com a aparência "42".)
Fonte da explicação do feed de formulário: /programming//a/26184126
fonte
\f
. Aqui está um link do try it online, no qual você pode obter uma resposta pré-formatada.Dyalog APL , 5 bytes ( SBCS )
Experimente online! ou teste todos os programas possíveis
Certamente, existem respostas melhores e chatas, mas essa é a melhor que eu já encontrei
O SBCS é necessário, pois o Dyalog Classic sempre parece ter saída no STDERR, tornando-o inutilizável.
fonte