Para esse desafio, você deve criar um programa que utilize um número inteiro x
e produza sua fonte x
várias vezes.
Regras
Este é um codegolf, o objetivo é jogar golfe no seu programa para ter a menor quantidade de bytes
Se você enviar uma função, ela deve assumir
x
como parâmetro e retornar ou imprimir todo o seu códigox
várias vezes para STDOUT. O corpo da função também não deve estar vazioSe você enviar um lambda, não será necessário atribuí-lo a uma variável
Aplicam-se restrições de brecha padrão .
Programas vazios são proibidos
Seu programa só precisa funcionar quando
x
um número inteiro inteiro é maior ou igual a 0Seu programa também pode não ler diretamente nenhuma parte do código-fonte
x
ser0
, ou podemos restringi-lo a números inteiros positivos?x
talvez qualquer número inteiro maior ou igual a 0Respostas:
Python 2 , 50 bytes
Observe a vírgula à direita e a nova linha.
Experimente online!
fonte
sys.stdout.write("2")
depois dela.Japonês , 14 bytes
Experimente online!
Explicação
fonte
RProgN 2 , 8 bytes
A solução RProgN2 Loop funciona particularmente bem para isso!
Experimente online!
fonte
Mathematica,
4033 bytesObrigado ao lanlock4 por economizar 7 bytes!
Função pura usando um argumento inteiro não negativo.
ToString[#0]
é a maneira padrão do Mathematica de acessar a definição atual da função pura;StringRepeat[..., #1]
concatena (entrada) cópias dessa sequência juntas. Por exemplo,rendimentos:
fonte
StringJoin @@ Table[ToString[#0], #1] & [2]
me dá um erro.Table::itform: Argument 2 at position 2 does not have the correct form for an iterator.
Table[x,5]
retornará{x,x,x,x,x}
no Mathematica 10.2 e além, mas no Mathematica 10.1 ele gera esse erro (esperaTable[x,{5}]
).StringJoin @@ Table
porStringRepeat
.V , 11 bytes
Experimente online!
Esta é uma modificação extremamente trivial do padrão V extensível . Simplesmente usamos
À
para executá-lo arg1 vezes.fonte
dc , 31 bytes
Experimente online!
Explicação:
fonte
Python 2, 70 bytes
Esta solução funciona se
x=0
. Há uma nova linha final à direita.Experimente online
Python 2, 60 bytes (inválido)
Isso pressupõe isso
x>=1
, mas o OP esclareceu quex
pode ser zero. Há uma nova linha final à direita.Experimente online
fonte
Subcarga , 12 bytes
Experimente online!
Envio de função, porque o Underload não tem outra maneira de receber entrada. (O link TIO mostra o número 4 fornecido como entrada e adiciona código para imprimir a saída resultante).
Este é apenas um construtor universal de quine
(a(:^)*):^
, mais~^
("faça um número de cópias igual ao argumento").fonte
Japonês , 14 bytes
Experimente online!
fonte
Gelatina , 10 bytes
Experimente online!
Como funciona
fonte
Marca GNU , 49 bytes
O Make juntará as cópias em um único espaço, por isso preciso incluir o caractere de espaço adicional no final e removê-lo com um
strip
intervalo para seguir fielmente o requisito.fonte
$0
nas funções Make não é a mesma coisa que nas conchas. É o nome da variável que a função é chamada como. Veja gnu.org/savannah-checkouts/gnu/make/manual/html_node/…call
se faz é substituir$0
e$1
por parâmetros reais - é uma simples interpolação de strings, como a do Python%
.Pitão, 17 bytes
Experimente online!
Extensão trivial para o bem conhecido
jN*2]"jN*2]
quine, mas provavelmente pode ser aproveitadofonte
Betaload , 203 bytes
Novas linhas adicionadas para maior clareza:
Dei-me a restrição de que ele deveria ler do STDIN, e não do topo da pilha, como faria normalmente uma resposta do Underload. Também usei entrada decimal adequada, que compõe a maior parte do código.
Explicação:
Envolvo o programa em um invólucro de quine:
(a(:^)*
e):^
. Isso significa que todo o código dentro do Quine Wrapper terá o código-fonte do programa na parte inferior da pilha.Para converter dígitos em um numeral normal da Igreja, uso a técnica de substituir cada dígito pelo código para multiplicar por 10 e adicionar esse dígito:
Há muita repetição aqui, então vamos empacotá-lo em um subprograma que pegará um número da Igreja do topo da pilha e o usará para construir a "sequência de dígitos:"
Coloquei isso em um novo ambiente para que ele possa ser acessado rapidamente:
Agora eu posso criar o código de substituição para
R
.R
usa os elementos principais da pilha para formar uma tabela de pesquisa para substituir uma sequência de STDIN pelo código Betaload. Funciona assim:No entanto, podemos usar o subprograma que acabamos de criar para gerar os segmentos de código:
Quando
R
executado, ele transforma a entrada em uma série de subprogramas que compõem um numeral da Igreja. Quando esse subprograma é executado, ele cria o número da Igreja no próximo elemento da pilha (0, que foi colocado anteriormente). Isso significa que, depoisR^
, o valor mais alto na pilha será o numeral da igreja. Mais^
uma vez, aplicamos o número da Igreja ao elemento final da pilha (o código-fonte do programa) para obter a resposta.Curiosidade: eu tenho o MD dessa submissão há vários meses. Eu o mantive após entender mal uma pergunta (que parece que não consigo mais encontrar). Eu tive que desenterrá-lo da minha Lixeira para publicá-lo aqui.
fonte
05AB1E , 23 bytes
Experimente online!
fonte
Python 2 , 41 bytes
Experimente online!
Será que uma saída de meio hacky usando
input
em vez deprint
, uma vez queprint
tem um bug estranho que envolve a impressão de uma nova linha quando não é suposto ... . Sai com um erro de EOF.Explicação:
fonte
05AB1E ,
2725 bytesExperimente online!
fonte
Pitão, 13 bytes
Suíte de teste
O padrão Pyth quine mais dois
*
para a repetição.fonte
Perl, 48 bytes
\47
é a fuga octal para uma aspas simples ('
). É interpretado entre aspas duplas ("
), mas não entre aspas simples.fonte
Javascript ES6,
2737 bytesEditar
+10 bytes se
f=
também deve ser exibidofonte
f=
?toString
a função.f.toString()
ouf
é o mesmo, mas ele não irá exibir o nome da funçãof
dessa maneira está se referindo à sua própria fonte.CJam ,
2012 bytes8 bytes economizados graças a Martin Ender
Experimente online!
Exaplanação
fonte
PHP, 194 bytes
Experimente online!
Nem golfe, como b64 quines tendem a ser.
fonte
Go ,
257254 bytesIsso me dói.
Experimente online!
fonte
Microscript II, 22 bytes:
Microscript II, 20 bytes (mas tecnicamente inválido, pois acessa o código fonte de um bloco de código):
fonte
C,
144116 bytesfonte
Python 3, 69 bytes
fonte
C # (compilador interativo do Visual C #) , 115 bytes
Experimente online!
fonte
05AB1E , 17 bytes
Modificação do quine padrão
0"D34çý"D34çý
adicionando×?
.Experimente online.
Explicação:
fonte