Quining, mas com arquivos do Windows!
Escreva um quine, que, quando executado, se cria no diretório atual, em um arquivo de origem com o nome próprio. Como usaremos o Windows nisso, o nome do arquivo (e, portanto, o quine) deve ter as seguintes limitações:
Nenhum desses caracteres \ / : ? * < > |
Menos de 211 255 caracteres
Limitações e premissas
Seu código deve ser um programa completo (afinal, ele será executado).
Nenhuma cópia do arquivo de origem.
Você pode assumir que não há outro arquivo com o seu Quine como o nome (como ele produziria o Quine (1)).
Erros são permitidos (desde que não entrem no código fonte
Este é o código-golfe , o código mais curto em bytes vence!
Talvez eu não tenha sido claro, o arquivo com o nome do quine deve realmente conter o quine. Foi mal.
Quais são as limitações de caracteres não ASCII no programa? (No Windows, isso pode muito possivelmente depender de qual versão de idioma do Windows está instalado; eu esqueço as regras exatas e se eles mudaram ao longo do tempo.)
Por que menos de 211 bytes? Isso é uma espécie de restrição arbitrária ...
@ mbomb007 Tamanho máximo do nome do arquivo, eu acredito.
@VoteToClose It's 255. stackoverflow.com/a/265782/2415524
@ mbomb007 Typo, talvez?
Se :fosse permitido, eu poderia reduzi-lo para 11 bytes. :(
As duas pilhas serão idênticas no final. Em algumas versões Java, isso pode ocorrer FileNotFoundExceptiondevido a diferentes implementações da FileInputStreamclasse.
Resposta anterior antes da edição:
Como eu também poderia, aqui está um diagrama das etapas que ocorrem nas pilhas (cada pilha é representada por []):
Na verdade, não tenho certeza de como isso funciona; pequenas alterações fazem com que isso se quebre. Por exemplo, colocando o &em vários outros locais deve funcionar muito bem, mas ele faz com que ClassCastExceptions, IOExceptions, e ArrayOutOfBoundsExceptioné dependendo de onde você colocá-lo. Talvez eu precise fazer algumas correções.
+1 paraPush a new stack to the stack stack.
+1 de mim se você puder enviar uma nova pilha de pilhas para uma pilha de pilhas; caso contrário, esqueça! ... Brincando com +1, eu ri também.
@carusocomputing E se eu disser que posso o? ;)
Suspiro de descompactação ...
Uhm ... Eu acho que o arquivo gerado é suposto para conter o código (ou seja, o seu conteúdo deve ser igual ao seu nome de arquivo)
Isso imprime o aviso
DeprecationWarning: a chamada de uma função assíncrona sem retorno de chamada foi preterida.
Se você deseja o verde, custa 4 bytes para mudar writeFilepara writeFileSync.
Digitei isso no meu telefone, deve funcionar, mas vou testá-lo quando chegar a um computador.
Eu acho que pelo menos você precisará mudar sting.formatpara string.formatduas vezes.
@ PeterTaylor você não gosta de Sting, não é?
@KeyWeeUsr, não tenho nada contra ele pessoalmente e, de fato, ele ajudou a pagar por minha educação, mas acho que a biblioteca padrão Lua foi provavelmente projetada para uso geral por pessoas familiarizadas com APIs semelhantes, e não especificamente para os fãs da polícia.