Escreva um pedaço de código que aceite uma string como entrada e emita um pedaço de código no mesmo idioma que, quando executado, produzirá a string de entrada inicial.
Ele deve poder manipular qualquer combinação de caracteres AZ, az e 0-9.
Exemplo em Python:
import sys
print "print('" + sys.argv[1] + "')"
Dada a entrada de testing123
, ele retornará print('testing123')
.
Como esse é o código-golfe , a resposta mais curta em bytes será vencedora.
code-golf
code-generation
Quartzico
fonte
fonte
Respostas:
pl , 0 bytes
Código:
Experimente online!
Explicação:
Um programa vazio em pl é simplesmente um programa de gato, produzindo exatamente o mesmo que a entrada.
Em pl, todos os caracteres ASCII são essencialmente variáveis, mas quando a variável ainda não existe, pl assume que eles fazem parte de uma string.
fonte
cat
intérprete. ;)brainfuck ,
565533 bytes1 byte salvo graças ao Gravitron e 22 bytes salvos graças a Jo King!
Experimente online!
A saída requer um intérprete que agrupe no fluxo insuficiente de memória e tenha EOI = 0. O TIO possui um intérprete.
Explicação
--[>+<++++++]
inicializa a fita com um único+
.O loop de entrada:
Outras soluções
Cada linha é sua própria solução.
fonte
+++++++++++++++
com+++[>+++++<-]>
(De constantes brainfuck )0
's, com um ponteiro para um valor.+
incrementa o valor,-
diminui o valor,>
move o ponteiro para a direita,<
move o ponteiro para a esquerda,,
lê a entrada no ponteiro como um caractere ASCII,.
gera o valor do ponteiro como um caractere ASCII,[
inicia um loop e]
pula para o correspondente[
se o O valor do ponteiro não é0
. Sou péssimo em explicar, mas é assim que Brainfuck é fácil. E bom golfe Conor!Mornington Crescent , 27640 bytes
Experimente online!
Explicação
Primeiro, uma rápida atualização sobre Mornington Crescent:
Como a impressão de strings é difícil (consulte o programa Mornington Crescent "Hello, World!" De Martin Ender ), precisaremos de um modelo simples que possa ser usado para gerar strings genéricos. Como a duração dos programas gerados não importa, decidi sobre isso:
Precisamos gerar cada caractere separadamente e concatená-los, pois a abordagem de substring usada por Martin é muito mais difícil de implementar no caso geral. Paddington é a estação que executa a concatenação de cadeias. Quando você chega a Paddington, acontece o seguinte:
Esse comportamento é usado para inicializar Paddington na cadeia vazia que é considerada a entrada.
Vá para Seven Sisters, que define o acumulador como 7, e armazene-o no banco. O Banco é a única maneira de copiar valores - Hammersmith é uma cópia somente do valor do Banco.
Divida 7 por 7 para obter 1, um divisor de todos os valores ASCII que precisamos oferecer suporte.
Para cada personagem, comece copiando o 1 para Upminster.
Adicione mais conforme necessário.
Conclua indo até Upminster apenas uma vez, para manter o novo valor no acumulador em vez de armazená-lo novamente. Vá para Charing Cross para transformar o valor ASCII em um caractere e anexá-lo à string. As duas últimas linhas estão lá porque eu li mal a especificação, então vou parar por aqui e jogar meu programa primeiro.
fonte
Take District Line to Upminster
linhas calcular a sequência de FibonacciGeléia , 1 byte
Woo builtins!
O interno
Ṿ
desvaloriza a entrada.Experimente online!
Um mais interessante:
Une a sequência "" "" pela entrada.
Experimente online!
fonte
”“;
por -1.Carvão, 1 byte
Por padrão, uma sequência de caracteres ASCII
..
~
simplesmente se imprime, restando apenas imprimir a entrada.fonte
C (gcc) ,
89875856 bytesEconomizou dois bytes graças a Jakob!
Experimente online!
fonte
puts
no programa impresso para economizar 2 bytes, certo? Ou é um problema que ele acrescenta uma nova linha?Japonês , 2 bytes
Experimente online!
i
é uma função que insere uma sequência especificada em um índice especificado na entrada.Q
é uma variável que tem como padrão aspas"
e, como não há nenhum índice fornecido, esse padrão é0
. O resultado final é uma aspas inserida no início da string, que o Japt termina automaticamente ao executar.Isso funciona em strings que contêm qualquer coisa
"
, exceto ,{
ou\
, embora, é claro, é garantido que a string consiste em caracteres alfanuméricos, portanto isso não importa.fonte
Python 2 , 22 bytes
Experimente online!
fonte
print'print'+`input()`
.input
em Python 2 é equivalente aeval(raw_input())
. Portanto, tem que ser uma expressão pitônica para funcionar.MATLAB / oitava , 15 bytes
Experimente online!
Eu ignorei completamente o fato de que o programa só precisa manipular caracteres alfanuméricos ou, principalmente, não precisa manipular caracteres de espaço. Isso significa que podemos usar a sintaxe 'command', que usa significativamente menos bytes.
MATLAB, 27 bytes
Para completar, aqui está uma versão que pode lidar com entradas arbitrárias:
Define uma função anônima que pega a string
t
e a converte no programa. Curiosamente, isso não funciona no Octave, que parece ter idéias diferentes do quemat2str
deve fazer.fonte
@(t)['disp ',mat2str(t)]
deve funcionar ...?mat2str
adiciona aspas, que não são necessárias na sintaxe do comando. Eu tinha a sintaxe da função combinadamat2str
para lidar com espaços na entrada, mas, ao reler o desafio, isso não é realmente necessário, cortando o número de bytes quase pela metade. Obrigado!Befunge-98 (FBBI) ,
211612 bytes-5 bytes graças a NieDzejkob
-4 bytes graças a Jo King
Experimente online!
Saídas
't,'e,'s,'t,@
para uma entrada detest
Quão?
Inicialmente, o ponteiro se move para o leste:
Se não houver mais entrada,
~
inverta a direção do ponteiro:fonte
Emojicode , 88 bytes
Experimente online!
Entrada:
Saída:
Saída do script:
fonte
QBIC , 7 bytes
Explicação
Amostra de execução
A saída é uma literal de cadeia de caracteres que contém a entrada, precedida por um
PRINT
comando.fonte
Lote 11 bytes
Tenho certeza de que há distância para diminuí-lo, mas isso é bem pequeno.
O colapso:
Em inglês:
O usuário é solicitado a inserir uma frase inicial
echo
. Em seguida, o usuário pode digitar o que quer e o programa termina (por exemplo;echo hello world!
). Isso nos deixa com um programa que, quando executado, será exibidohello world!
.Sim, o espaço em branco deve estar lá
fonte
echo
parte não seria ecoada em texto no console e não seria programada?echo
na saída padrão. De fato, (presumo) se a entrada vier de um arquivo ou canal, tudo o que você verá é o prompt. Esse tipo de saída foi permitido?V, 2 bytes
No Vim,
i
muda para o modo de inserção e permite inserir texto. Nesse caso, apenas insere oi
texto na frente do texto de entrada (para criar o segundo programa). V é compatível com Vim, mas adiciona um implícito<esc>
ao final do programa, portanto não preciso me preocupar com isso aqui.fonte
PowerShell, 9 bytes
aspas simples ou duplas no PowerShell podem ser usadas para conter cadeias de caracteres, mas apenas aspas duplas permitem expansão variável.
com uma entrada
foo
dessa saída,'foo'
que é um programa válido do powershell que gerafoo
fonte
Cubicamente , 87 bytes
Experimente online!
Um porto da minha resposta aqui . Já existia um desafio para obter entrada e saída do código Cubically que produzia essa entrada, e eu tinha uma resposta no Cubically para ... lucro?
fonte
%6
s e@6
s; agora eles podem ser chamados implicitamente. (Você também pode fazer isso em sua resposta no segmento cubifier.)D,
9289 bytesExperimente online!
fonte
Python 2 , 17 bytes
Experimente online!
fonte
1
'1'
para a função, ela seráprint'1'
SOGL V0.12 , 2 bytes
Experimente aqui! (espera entrada na pilha, por isso
,
é adicionada para facilitar o uso)$
empurra”
,+
junta-se a isso após a entrada na pilha.fonte
"
.Perl 6 , 19 bytes
Tente
Isso deve funcionar para qualquer entrada Unicode na NFC
fonte
8o ,
3437 bytesCódigo
Exemplo
fonte
PHP , 12 bytes
Experimente online!
Isso deve ser executado na linha de comando com a entrada como argumento do parâmetro. E sim, simplesmente gera a string de entrada - mas isso é PHP válido: qualquer coisa fora do
<?php
?>
delimitadores é processada sem saída.Aqui está o script produzido pela entrada 'testing123' em ação como uma demonstração: Experimente online!
fonte
<?php
, você mente;)MATL , 2 bytes
Experimente online!
Simplesmente envolve a string entre aspas usando
&D
, o que é equivalente ao MATL do MATLABmat2str
, uma função especificamente criada para criar algo que, quandoeval
d, fornecerá a matriz original (ou, nesse caso, string).O 'programa' resultante é apenas a sequência de entrada entre aspas, que é empurrada na pilha e exibida implicitamente.
fonte
eacal , 38 bytes
Experimente online!
Simplesmente anexa a sequência
put string
à sequência de memória e depois o argumento, que é impresso.fonte
Lote, 14 bytes
Também funciona para caracteres especiais se forem citados usando
"
s em vez de^
.fonte
@echo.@echo.%*
seria mais correto? A entrada pode estar potencialmente vazia..
porque nunca está vazio, e usei um(
para o segundo caso, porque é mais confiável do que.
, mas obrigado pelas sugestões de qualquer maneira!@echo.
s lolLy , 14 bytes
Experimente online!
Explicação
fonte
05AB1E , 3 bytes
Experimente online!
Entrada surround entre aspas.
-1 @Adnan.
fonte
Flacidez Cerebral ,
9268 bytes-22 bytes graças ao Assistente de Trigo
Inclui +2 para
-cr
Experimente online!
fonte
Pitão ,
21 byteExperimente online!
Apenas gera a entrada. Requer seqüências de caracteres entre aspas.
-1 byte graças a KarlKastor
fonte
+\"
? (\x
char literal + implícitoQ
)+N
Cenoura , 1 byte
Como funciona
Uma alternativa, também com 1 byte, é:
Isso funciona da mesma forma que o acima, mas apenas leva a primeira linha de entrada. Vendo como entrada só será possível,
[A-Za-z0-9]
isso é bom.fonte
01
?