Seu objetivo neste código golf é usar duas cadeias language
e code
(se o código que você escreveu para isso for multiline, essa variável seria multiline.) E um número inteiro bytes
,. Eles representam as variáveis para uma linguagem de programação, número de bytes necessários e o próprio código.
Depois disso, você irá formatá-lo como um jogador de código faz.
A variável de saída é uma sequência multilinha chamada answer
.
Você pode usar cadeias de linhas múltiplas em:
Se você pesquisar Stack Overflow , poderá encontrar mais linguagens de programação que o suportem.
Aqui está um modelo da margem de saída. A code
variável está em um bloco de código e há um cabeçalho de segundo nível.
## {language}, {bytes} bytes
{code}
Aqui está a aparência da saída quando colada em um analisador Markdown.
{language}, {bytes} bytes
{code}
Presume-se que as variáveis já estejam preenchidas conforme o idioma em que você codificou sua entrada de código de golfe, o número de bytes necessários e o código real.
Aqui está outro exemplo da saída como código, desta vez com variáveis preenchidas:
## JavaScript, 1337 bytes
document.getElementById("foo").innerHTML = bar;
Aqui está a versão como uma citação:
JavaScript, 1337 bytes
document.getElementById("foo").innerHTML = bar;
Os bytes podem ser retirados do seu código se você usar uma maneira de definir o texto de um <p>
elemento em HTML pelo ID result
, como o seguinte código JavaScript:
document.getElementById("result").innerHTML = answer;
Certifique-se de incluir também <p id="result"></p>
na seção HTML do JSFiddle para que isso funcione.
Pontuação
Como todas as perguntas sobre código-golfe , o código que usa a menor quantidade de bytes é o melhor.
fonte
{code}
ser sempre um código de várias linhas?language
,bytes
ecode
são de entrada ou se esta é uma variante de quine onde essas coisas devem corresponder ao próprio código de solução. (E se assim for, direta ou indiretamente ler esse código-fonte é permitido, e se Quine built-ins são permitidos.)code
pode conter linhas de alimentação?code
que não será multilinha ou não podemos? Por favor, indicam que no texto desafioRespostas:
05AB1E , 21 bytes
Código:
Usa a codificação CP-1252 . Experimente online! .
fonte
Java, 70 bytes
Assume que
b[0]
é o nome do idioma,b[1]
é a contagem de bytes eb[2]
é o código.Tornar compilável custa 9 bytes, resultando em um programa não autônomo de 79 bytes:
O programa monolítico equivalente tem 103 bytes de comprimento:
O monolítico trabalha com argumentos de linha de comando, assumindo-os como o programa não independente:
Java (expressão lambda),
5648 bytesIsto é um
java.util.function.Function<String[], String>
.Nenhum desses programas / funções manipula seqüências de linhas múltiplas. Para fazer isso, basta substituir
b[2]
eA[2]
porb[2].replace("\n","\n ")
eA[2].replace("\n","\n ")
- adicionando 23 bytes.fonte
\t
algo para substituir os quatro espaços após as duas novas linhas?\t
e não 4 espaços?b->
.V , 24 bytes
Observe que há um espaço à direita no final.
Este programa assume que{code}
não estará em várias linhas.Op esclareceu, "código" pode ser uma sequência de múltiplas linhas. Esta versão de 24 bytes funciona:
Como contém um caractere não imprimível, aqui está a versão legível:
Onde
<esc>
está o caractere de escape literal, por exemplo0x1B
.fonte
Python 3.5,
4033 bytes:( -7 bytes graças a alguns esclarecimentos do Mego )
Uma função lambda anônima que recebe entradas como argumentos posicionais no formato
<function name>(String, Number, String)
e gera uma sequência de linhas múltiplas.Experimente Online! (Ideona)
fonte
*f
e desligar atuple
chamada.TypeError: not enough arguments for format string
sempre que executo dessa maneira.#
e o%
.#
e o lambda é necessário, ou assim eu acho.JavaScript (ES6), 56 bytes
Além disso, para rir, aqui está uma resposta que se formata para mim:
JavaScript (ES6), 68 bytes
Imprima o resultado de
f()
.fonte
(ES6)
. (Por que Cᴏɴᴏʀ O'Bʀɪᴇɴ única preocupou em alterar o comprimento?)C #,
4038 bytesC # lambda onde entradas e saídas são cadeias de caracteres.
C #, 59 bytes
Com o manuseio de uma resposta multilinha.
C #, 71 bytes
A solução de 38 bytes que se imprime
Experimente online
fonte
Mathematica, 40 bytes
Função anônima. Pega o idioma, a contagem de bytes e o programa como entrada e imprime o corpo em STDOUT.
fonte
Jolf,
2422 bytesNão há muito a explicar aqui.
¦
significa entrada interpolada.Experimente aqui! A saída para a entrada no link é:
A entrada é como:
fonte
MATL ,
2827 bytes1 byte salvo graças à sugestão de @ NinjaBearMoneky
Experimente online!
O bloco de código deve estar em uma única linha.
Explicação
fonte
Lisp comum, 57 bytes
Além disso, por diversão, aqui está um trecho de código que imprime um cabeçalho para si.
Lisp comum, 146 bytes
fonte
Ruby, 63 bytes
Experimente online: http://codepad.org/EIn0Gw9M
fonte
hashmap , 29 bytes.
(Escrevi essa postagem com o programa, mas tive que escapar \ n para \\ n)
Explicação:
fonte
CJam ,
2623 bytesObrigado a @NinjaBearMonkey por remover 3 bytes!
O bloco de código deve estar em uma única linha.
Experimente online!
Explicação
fonte
'#_Sl',Sl" bytes"N_S4*l
Pyke, 25 bytes
Experimente aqui!
Ou
Pyke, 0 bytes
Experimente aqui! - clique no botão copiar resposta;)
EDIT - É apenas um recurso do site, é trapaceiro (ou pelo menos eu o consideraria) porque nunca analisa um AST e o programa da web provavelmente não é considerado parte do idioma, pois não interage muito com o idioma (mesmo que esteja executando o interpretador Pyke)
fonte
Perl 5, 35 bytes
Um programa completo, recebe entradas como argumentos de linha de comando na ordem inversa. Requer
-M5.01
, que é gratuito.fonte
Emacs Lisp, 97 bytes
Além disso, como às vezes pode ser difícil escapar de aspas e outras coisas, um exemplo de uso que copia a string para a área de transferência. (Marque região e uso
M-:
)Emacs Lisp, 184 bytes
fonte