Quine Relay!
Um relê quine de ordem é uma série de programas de P 1 ... P n em diferentes idiomas de tal modo que cada programa P i emite P i + 1 e P n saídas .
Por exemplo, um relé de 2 quines pode ser visto aqui:
Ruby → Perl 6:
$><<"print ("
p (DATA.read*2).chars.map(&:ord)
$><<".map: &chr).join"
__END__
$><<"print ("
p (DATA.read*2).chars.map(&:ord)
$><<".map: &chr).join"
__END__
gera este programa Perl 6 :
print ([36, 62, 60, 60, 34, 112, 114, 105, 110, 116, 32, 40, 34, 10, 112, 32, 40, 68, 65, 84, 65, 46, 114, 101, 97, 100, 42, 50, 41, 46, 99, 104, 97, 114, 115, 46, 109, 97, 112, 40, 38, 58, 111, 114, 100, 41, 10, 36, 62, 60, 60, 34, 46, 109, 97, 112, 58, 32, 38, 99, 104, 114, 41, 46, 106, 111, 105, 110, 34, 10, 10, 95, 95, 69, 78, 68, 95, 95, 10, 36, 62, 60, 60, 34, 112, 114, 105, 110, 116, 32, 40, 34, 10, 112, 32, 40, 68, 65, 84, 65, 46, 114, 101, 97, 100, 42, 50, 41, 46, 99, 104, 97, 114, 115, 46, 109, 97, 112, 40, 38, 58, 111, 114, 100, 41, 10, 36, 62, 60, 60, 34, 46, 109, 97, 112, 58, 32, 38, 99, 104, 114, 41, 46, 106, 111, 105, 110, 34, 10, 10, 95, 95, 69, 78, 68, 95, 95, 10]
.map: &chr).join
que por sua vez gera o programa Ruby original.
O desafio
A primeira resposta será um revezamento de quine da ordem : um quine normal. Pode estar em qualquer idioma.
A próxima resposta escolherá um idioma diferente e criará um revezamento de quines usando esses dois idiomas.
E assim por diante. A ésima resposta criará um retransmissor de ordem k usando os idiomas k - 1 anteriores e um novo idioma diferente.
Ganhando
Se, após duas semanas, nenhuma resposta for adicionada, o vencedor será a pessoa que respondeu com o revezamento de quino de mais alta ordem.
Mais regras
- Ninguém pode responder duas vezes seguidas.
- Nenhuma pessoa pode responder dentro de uma hora após a publicação mais recente.
- Os idiomas que diferem por versão são considerados distintos. Assim, Python 2 e Python 3 podem fazer parte da cadeia.
- Os idiomas que diferem por compilador ou intérprete não são considerados distintos. Portanto, Python 3 (Cython) e Python 3 são considerados intercambiáveis, mas não distintos.
- Cada resposta pode ordenar os idiomas de qualquer maneira. Se a terceira resposta tiver uma ordem de Ruby → Perl 6 → JavaScript, você não estará restrito a anexar um idioma ao final. Se você estivesse adicionando Java ao mix, poderia escrever JavaScript → Ruby → Java → Perl 6, se assim o desejasse.
Formato para respostas
n. Idioma 1 → Idioma 2 →… → Idioma n
Idioma 1
language 1 code
Idioma 2
language 2 code
Idioma 3
language 3 code
...
Idioma n
language n code
Sinta-se à vontade para adicionar explicações em qualquer lugar das suas respostas.
fonte
Respostas:
10. Javascript → Foo → brainfuck → Wumpus → Gol> <> → RAD →> <> → Python 2 → Brain-Flak → 4
Edit: Para a próxima resposta, eu joguei como o Python gera um pouco mais o Brain-Flak aqui , mas não posso me incomodar em atualizar os links.
Adicionado Gol> <>. É um pouco
rpH
depois do código Wumpus. Também otimizei o código brainfuck e Brain-Flak. Verificação!JavaScript (Node.js)
Experimente online!
Foo
Experimente online!
cérebro
Experimente online!
Wumpus
Experimente online!
Gol> <>
Experimente online!
RAD
Experimente online!
> <>
Experimente online!
Python 2
Experimente online!
Brain-Flak
Experimente online!
4
Experimente online!
fonte
3. JavaScript → Python 2 → Foo
Javascript
JS clássico quine. Este é um programa completo que gera para o console:
Experimente online!
Python 2
O código Python basicamente imprime o código JS entre aspas:
Experimente online!
Foo
O código Foo é um código JS com aspas:
Experimente online!
fonte
String.fromCharCode(39,34)
economizar nas repetidas invocações?String.fromCharCode(39)+String.fromCharCode(34)
para salvar um pouco ;-)1. Foo
Foo
Um simples foo quine:
Experimente online!
fonte
2. Python 2 → Foo
usei o python básico quine e adicionei as aspas
Pitão:
Experimente online!
foo:
Experimente online!
fonte
5.> <> → JavaScript → brainfuck → Python 2 → Foo
Resposta obrigatória do cérebro.
> <>
Experimente online!
Javascript
Experimente online!
cérebro
Experimente online!
Python 2
Experimente online!
Foo
Experimente online!
fonte
9. JavaScript → Foo → Brainfuck → Wumpus → RAD →> <> → Python 2 → Brain-Flak → 4
Isso foi divertido.
Não faço ideia por que decidi que 4 deve ser adicionado, não faço ideia por que refiz a coisa toda (é claro, copiar e colar coisas por aí), mas fiz: D
Javascript
Experimente online!
Como a saída é muito grande para o retorno do TIO, aqui está um testador que percorre todos os idiomas.
Foo
Experimente online!
cérebro
Experimente online!
Wumpus
Experimente online!
RAD
Experimente online!
> <>
><>
gera uma nova linha no meio com,'a'
para que a função python seja separada do restante do código.Experimente online!
Python 2
Experimente online!
O Python gera um ataque cerebral otimizado, reutilizando o item anterior na pilha, porque, caso contrário, o código do cérebro seria em torno de um megabyte.
Brain-Flak
Experimente online!
4
Experimente online!
fonte
4.> <> → JavaScript → Python 2 → Foo
> <>
Experimente online!
Eu adicionei a string clássica de empacotamento literal, anexando
'rpp>o<
ao início e editando-a na parte central também.JavaScript (Node.js)
Experimente online!
Eu reduzi o
String.fromCharCode
parte de acordo com os comentários da última resposta. Sei que esse desafio não é realmente código-golfe, mas me faz sentir melhor.Python 2
Experimente online!
Adicionado o
\'
início do quine> <>.Foo
Experimente online!
fonte
6.> <> → JavaScript → brainfuck → Python 2 → Brain-Flak → Foo
Resposta obrigatória contra ataques cerebrais.
> <>
Experimente online!
JavaScript (Node.js)
Experimente online!
cérebro
Experimente online!
Python 2
Experimente online!
Brain-Flak
Experimente online!
Excluí o código, pois tem 41568 bytes e atinge o limite de caracteres da resposta. O código é semelhante ao código brainfuck e está no formato:
Foo
Experimente online!
fonte
7.> <> → JavaScript → RAD → brainfuck → Python 2 → Brain-Flak → Foo
> <>
Experimente online!
Javascript
Experimente online!
RAD
Experimente online!
cérebro
Experimente online!
Python 2
Experimente online!
Brain-Flak
Experimente online!
Foo
Experimente online!
fonte
8.> <> → Wumpus → JavaScript → RAD → cérebro → Python 2 → Flak cerebral → Foo
Adicionando em outra linguagem 2D, o Wumpus.
> <>
Experimente online!
Isso agora imprime um extra
"
antes do código Wumpus.Wumpus
Experimente online!
Semelhante ao
><>
quine, isso envolve uma string literal ao redor do código e imprime apenas a seção javascriptJavaScript (Node.js)
Experimente online!
RAD
Experimente online!
Estou excluindo seções muito longas do código da cadeia, para não preencher a resposta.
cérebro
Experimente online!
Python 2
Experimente online!
Brain-Flak
Experimente online!
Foo
Experimente online!
Esta foi realmente a parte mais irritante do código. O Foo suporta apenas literais de string de 254 comprimentos por algum motivo, então tive que jogar um pouco e dividir o Javascript do código 2D para mantê-lo curto. A próxima pessoa provavelmente terá que dividir o Javascript.
fonte