Escreva um programa completo que aceite uma entrada inteira booleana ou não negativa. Deve:
- Emita seu próprio código-fonte se o valor de entrada for falso
- Emita seu próprio código-fonte ao contrário, se o valor de entrada for verdadeiro
Seu programa não pode ser palindrômico, nem pode ler seu próprio código-fonte por qualquer meio.
Este é o código golf - o código mais curto em bytes ganha.
Respostas:
Gol> <> , 9 bytes
Sinto-me um pouco estranho ao postar isso, já que já temos> <> respostas de Vitsy e Minkolang. As únicas adições ao quine padrão são
I
(ler a entrada inteira),?
(executar a seguir se for verdade) er
(pilha reversa).Experimente online .
fonte
sP#Hr?I"
CJam,
1716 bytesTeste aqui.
Uma modificação bastante direta do quine padrão. Outras soluções para 17 bytes:
Se eu puder assumir que a entrada é apenas 0 ou 1 (como substituto de um booleano, para o qual não há tipo dedicado no CJam), obtive 15 omitindo o
g
:Explicação
fonte
g
.Pitão, 17 bytes
Uma modificação direta do padrão Pyth quine.
fonte
> <>, 17 bytes
Requer o sinalizador -v (+1 byte) para inserir entrada na pilha (ou para você inserir entrada na pilha com antecedência no intérprete on-line).
Você pode fazer o seguinte para a mesma quantidade de bytes (sem o sinalizador) se apenas entradas inteiras forem permitidas (por exemplo, 0 para falsy, 1 para verdade).
Experimente online
Verdade / falsidade para> <> não são 0 e 0, respectivamente.
fonte
Vitsy , 15 bytes
... eu estou ... eu estou batendo CJam! (grita) Mãe! Olha, mãe, eu fiz isso!
Explicação:
Versão mais recente do Vitsy , 11 bytes
fonte
Javascript (ES6), 42 bytes
Esta é uma modificação do meu Bling Quine . Também é o dobro do tempo.
fonte
prompt()
é necessário, a menos que passemos para o Node.JS. Acredito que$=_=>(A=`$=${$};$(prompt())`,alert(_?A:[...A].reverse().join``));$(prompt())
funcione corretamente, embora talvez possa ser mais desvalorizado.Burlesco, 40 bytes
Explicação:
Burlesque possui built-ins avançados de manipulação de pilha e código. De fato, você não pode acessar o código fonte do programa, mas pode acessar o código restante que será executado no futuro. Isso significa
#Q
que retornará todo o código a seguir, e é por isso que precisamos adicionar tudo#Q
ao código com o qual estamos fazendori#Q
.++1 2
é um código tecnicamente ilegal, pois é baseado em pilha. Mas podemos manipular o código para executá-lo como1 2++
:Trabalhar com esses built-ins é incrivelmente complicado e ninguém ainda os usou para qualquer coisa produtiva, exceto por questões relacionadas a quine. Se você inverter,
++1 2
obtém o2 1++
que produziria21
e não12
. A razão pela qual o código acima produz12
é porque#Q
também inclui o<-
modo. No final, acabamos executando muito mais do que apenas2 1++
: p. Acabamos executando o2 1++#q<-
que produz12
.Na verdade, podemos substituir coisas em nosso código, por exemplo, esse código substitui todas as ocorrências
?+
por si só por?*
Uso:
fonte
Haskell,
126118108 bytesEspera
0
ou1
como entrada.fonte
Minkolang 0.10 , 13 bytes
Experimente aqui.
Este é exatamente como o Quine padrão, exceto para estes quatro personagens:
n,?r
.n
pega um número inteiro da entrada,,
inverte-o, então?
pular
se a entrada é verdadeira. Caso contrário,r
inverte a pilha para que ela seja impressa na ordem inversa.fonte
Python 2, 51 bytes
fonte
Java 10 (programa completo), 282 bytes
Experimente online.
Java 10 (como função lambda), 154 bytes
Experimente online.
Explicação:
explicação quine :
var s
contém o código fonte não formatado%s
é usado para colocar essa String em si mesma coms.format(...)
%c
,,%1$c
e34
são usados para formatar aspas duplass.format(s,34,s)
coloca tudo juntoE então
new StringBuffer(s).reverse()
é usado para reverter o quine-String, se necessário, com base no input-boolean.fonte
05AB1E , 21 bytes
Experimente online.
Modificação do quine padrão
0"D34çý"D34çý
adicionando‚sè
.Explicação:
PS: Imprime automaticamente uma nova linha à direita. Se isso também deve ser revertido, são 23 bytes:
Experimente online. (
?
é uma impressão explícita sem nova linha )fonte