A perspectiva desse desafio é:
- Se o seu programa for executado normalmente, todo o código nas marcas de fala (
"
- aspas duplas) deve ser impresso. - Se o seu programa estiver entre aspas duplas (por sua vez, invertendo as marcas de fala), o código que normalmente não está entre aspas deve ser impresso.
Por exemplo:
Digamos que você tenha o seguinte código:
fancyStuff("myCode"); "I like".isGreat();
Se eu executá-lo, esperaria uma saída de:
myCode
I like
No entanto, se eu o envolvesse entre aspas, obteria:
"fancyStuff("myCode"); "I like".isGreat();"
Quando esse código é executado, a saída esperada seria:
fancyStuff(
);
.isGreat();
Obviamente, o exemplo acima não é uma resposta funcional em nenhum idioma. Seu trabalho é escrever o código que executa dessa maneira.
Regras
- Aplicam-se brechas padrão.
- Os valores impressos, nos formulários entre aspas e não entre aspas, devem ser não vazios ou consistir apenas em espaços em branco. Isso também significa que todos os programas devem incluir pelo menos um conjunto de cotações.
- No entanto, espaços em branco à direita / à direita são permitidos.
- Não é necessário procurar seu próprio código, nomes de arquivos necessários etc.
- Citações sem correspondência não são permitidas
- Se houver várias cadeias, elas podem ser impressas como novas linhas (como no exemplo) ou de outra maneira legível por humanos - sem matrizes ou objetos
- Isso é código-golfe , então a resposta mais curta em bytes vence.
code-golf
restricted-source
quine
Geza Kerecsenyi
fonte
fonte
Respostas:
Python 2 , 20 bytes
-7 bytes graças ao tsh
Experimente online!
Resposta antiga:
Python 2 , 27 bytes
Experimente online!
Linha de pensamento por trás desta resposta:
Comece com uma impressão simples, porque precisamos imprimir alguma coisa .
Também precisamos imprimir algo no caso invertido, ie. tenha uma impressão dentro de aspas.
O caso não invertido é muito bom neste momento. Vamos nos concentrar no caso invertido. Agora começamos com a string
print
, que não pode ser seguida imediatamente por uma declaração de impressão. Vamos corrigir isso com um ponto e vírgula.Coisa boa. Exceto que o código invertido não imprime nada. Precisamos imprimir o
print
no início, porque ele termina entre aspas, mas também imprime o que vier após a segunda cotação, porque também termina entre aspas. A maneira óbvia de contornar isso é anexarprint
e multiplicar a última string por 2.Agora, o código invertido funciona bem, embora tenhamos que ter cuidado com o fato de que a seção antes da primeira cotação e a seção após a segunda cotação precisam ser mantidas as mesmas durante as alterações futuras. Quanto ao código não invertido, ele gera um erro de sintaxe - mais uma vez, precisamos introduzir um ponto e vírgula para separar expressões.
O Python realmente não gosta da aparência desse ponto e vírgula solitário, portanto, devemos satisfazer a fome da cobra com duas da mesma expressão não operacional, inseridas antes do primeiro ponto e vírgula e do último ponto e vírgula. A maioria das expressões funcionará bem no primeiro caso, mas no segundo caso deve seguir
print";print 2*"
no código não invertido sem quebrar nada. Podemos usar''
, que simplesmente é concatenado com a string anterior.fonte
print(";print('print()');")
também tem 27 bytes e também Python 3.CSS, 66 bytes
Poucas perguntas podem ser resolvidas pelo CSS ...
fonte
body:after
também funciona em algumas implementações?:after
está disponível na maioria dos navegadores para razão compatibilidade com versões anterioresHQ9 + [veja notas abaixo] , 1016 bytes
Use a implementação em https://esolangs.org/w/index.php?title=HQ9%2B&oldid=59995 e compile o intérprete com o MinGW GCC 5.3.0 no Windows. Não tenho certeza se ele funciona com outra versão do compilador, pois é necessário um comportamento indefinido de C para finalizar o programa. O buffer tem 1000 bytes. E o código fonte com mais de 1000 bytes é o suficiente. Não tenho certeza de como isso aconteceu.
fonte
05AB1E , 4 bytes
Saídas concatenadas sem separador.
Experimente online ou online com aspas .
Explicação:
fonte
Japonês , 4 bytes
Experimente não cotadas ou cotadas
P
é a variável Japt da string vazia e os
método corta uma string - sem argumentos, ele não faz nada.Ou, ainda que um pouco menos trivial:
Experimente não cotadas ou cotadas
O primeiro está em maiúsculas
+
e o segundou
em uma string vazia.fonte
C # (Compilador interativo do Visual C #) ,
1131121077064 bytesEconomizou 5 bytes graças a @negative seven
Não citado e citado
Depois de um tempo, percebi que minha solução era muito complicada. O programa mais recente mostrado aqui simplesmente oculta o restante do programa em um comentário para evitar erros quando estiver entre aspas.
Quando colocado entre aspas,
Write(
é passado para um método de extensão, que o imprime junto);
.fonte
Split()
->Trim()
evar a
->_
Remove
eInsert
sobre ele, agora eu posso apenas usar um método de extensão!Perl 6 , 11 bytes
Experimente online!
Imprime
.say~
com uma nova linha à direita. Parece fácil demais. Estou esquecendo de algo?Quando colocado entre aspas , produz
say
com um espaço e uma nova linha à direita.fonte
Foo , 4 bytes
Experimente online! Também trabalha em Japt.
5 bytes (UTF-8)
Experimente online! Também funciona em 05AB1E.
9 bytes
Experimente online! Também trabalha em encantamentos rúnicos.
11 bytes
Experimente online! Também funciona em Perl 6.
20 bytes
Experimente online! Também funciona em Python 2.
69 bytes
Experimente online! Também funciona em CSS.
Hmm ... Foo é uma linguagem altamente adaptável.
fonte
"a"b
1"2"
mesmo acontece com Foo. A única resposta nesse desafio que não é poliglota de Foo até agora está no HQ9 +, porque o intérprete de Foo também tem o problema de transbordamento.> <> ,
189 bytes-9 bytes graças a Jo King
Experimente online! ( citado )
Explicação
fonte
Befunge-98 (FBBI) , 12 bytes
Não citado
Ambos os casos são impressos
<@,k4
. Um (ou ambos) dos@
s podem ser substituídos porq
.fonte
Encantos Rúnicos , 9 bytes
Experimente online! e
""!""$;"$;"
De Kevin Cruijssen, que essencialmente corrigiu minha primeira tentativa utilizando o que fiz na segunda.
Descendo a rota "fungoids nunca tem aspas incomparáveis", flexão de regras ", há algo sobre isso que não deve ser bom", mencionado no meu próprio comentário:
7 bytes
Experimente online! e
"0".""$;"
Em circunstâncias normais, esse programa é executado como
0".""$;0".""$;
pressionar um número inteiro e0
, em seguida, a string.
concatena$;0
NOP, concatena uma string vazia, imprime o topo da pilha (a string.$;0
) e termina. O"0".""$;"
agrupamento entre aspas produz o que empurra uma string0
, NOPs , concatena uma string vazia, imprime o topo da pilha e termina (renderizando o número inteiro não impresso anteriormente0
na forma de string). O último não"
é executado (e não faz parte do programa original ).Os fungos não possuem literais de seqüência de caracteres, eles têm um comando que alterna o modo "ler a própria fonte como uma seqüência de caracteres" e alguma forma de regra "ponteiro de instrução atingiu o limite da fonte" (geralmente quebra de borda), portanto o mesmo código-fonte -posicional-byte atua como instrução "string inicial" e "string final", criando uma literal de string dessa linha / coluna inteira (excluindo a
"
própria).fonte
$;
o final da versão citada."$;
e""$;"
(aspas envolventes rúnicas emparelhadas).!.
(o que é correto), mas não deveria o seu programa com saída de aspas0$;
? PS: Eu não conheço nenhum Runic Enchantments, mas uma possível correção com base no seu layout atual que eu acho que seria válida0"!""$;"$;
(que sai!$;
como está ou sai0$;
se estiver entre aspas). EDIT: Na verdade, acho que você pode soltar o0
e output!$;
e$;
.$
é "imprimir parte superior da pilha" e;
termina. Mas você basicamente tem uma resposta válida.Haskell, 31 bytes
Experimente online! Ou entre aspas: Experimente online!
fonte
MathGolf , 4 bytes
Experimente online!
O
;
eq
pode ser trocado por vários comandos diferentes, incluindo no-ops.fonte
Ruby , 8 bytes
Experimente online!
Agrupa a saída entre aspas, o que pode ser ilegal.
Ruby , 17 bytes
Experimente online!
fonte
JavaScript (SpiderMonkey) , 25 bytes
Experimente online!
Experimente online!
Trivial, mas funcional.
fonte
Japonês , 4 bytes
Sem aspas, ele converte a string
P
em maiúsculas. Citado, ele imprimeu
.Tente
Japonês , 4 bytes
Sem aspas, ele reverte a string
P
. Citado, ele imprimew
.Tente
fonte
Q
vez deP
, é mais meta! ;)R, 16 bytes
Observe que o código acima não está entre aspas adicionais e possui espaços à esquerda e à direita.
Experimente (versão não empacotada)
fonte
AppleScript, 9 bytes
Explicado:
Citado:
fonte