Su objetivo en este campo de código es tomar dos cadenas, language
y code
(si el código golfed que escribió para este consta de varias líneas, a continuación, esta variable sería de varias líneas.) , Y un entero, bytes
. Representan las variables para un lenguaje de programación, la cantidad de bytes que necesita y el código en sí.
Después de eso, lo formateará como lo hace un golfista de código.
La variable de salida es una cadena multilínea llamada answer
.
Puede usar cadenas multilínea en:
Si busca Stack Overflow , debería poder encontrar más lenguajes de programación que lo admitan.
Aquí hay una plantilla de la rebaja de salida. La code
variable está en un bloque de código y hay un encabezado de segundo nivel.
## {language}, {bytes} bytes
{code}
Así es como se vería el resultado al pegarlo en un analizador Markdown.
{idioma}, {bytes} bytes
{code}
Se supone que las variables ya se completarán como el idioma en el que codificó su entrada de golf de código, el número de bytes que toma y el código real para ello.
Aquí hay otro ejemplo de la salida como código, esta vez con variables completadas:
## JavaScript, 1337 bytes
document.getElementById("foo").innerHTML = bar;
Aquí está la versión como una cita en bloque:
JavaScript, 1337 bytes
document.getElementById("foo").innerHTML = bar;
Los bytes se pueden quitar de su código si usa una forma de establecer el texto de un <p>
elemento en HTML mediante la identificación result
, como el siguiente código JavaScript:
document.getElementById("result").innerHTML = answer;
Asegúrese de incluir también <p id="result"></p>
en la sección HTML de JSFiddle para que esto funcione.
Puntuación
Como todas las preguntas de código de golf , el código que usa la menor cantidad de bytes es el mejor.
fuente
{code}
Alguna vez será un código multilínea?language
,bytes
ycode
son entradas o si esta es una variante quine donde esas cosas deben coincidir con el código de resolución en sí. (Y si es así, si se permite la lectura directa o indirecta de ese código fuente, y si se permiten las incorporaciones de quine).code
puede contener saltos de línea?code
que no será multilínea, o no? Indíquelo en el texto del desafíoRespuestas:
05AB1E , 21 bytes
Código:
Utiliza la codificación CP-1252 . Pruébalo en línea! .
fuente
Java, 70 bytes
Asume que
b[0]
es el nombre del idioma,b[1]
es el recuento de bytes yb[2]
es el código.Hacerlo compilable cuesta 9 bytes, lo que resulta en un programa no independiente de 79 bytes:
El programa monolítico equivalente tiene 103 bytes de longitud:
El monolítico funciona con argumentos de línea de comando, asumiendo estos al igual que el programa no independiente:
Java (expresión lambda),
5648 bytesSe trata de una
java.util.function.Function<String[], String>
.Ninguno de estos programas / funciones maneja cadenas multilínea. Para hacerlo, simplemente reemplace
b[2]
yA[2]
conb[2].replace("\n","\n ")
yA[2].replace("\n","\n ")
, al hacerlo, agrega 23 bytes.fuente
\t
algo para reemplazar los 4 espacios después de las dos nuevas líneas?\t
y no 4 espacios?b->
.V , 24 bytes
Tenga en cuenta que hay un espacio final al final.
Este programa supone que{code}
no estará en varias líneas.Op ha aclarado, "código" puede ser una cadena multilínea. Esta versión de 24 bytes funciona:
Como esto contiene un carácter no imprimible, aquí está la versión legible:
¿Dónde
<esc>
está el carácter de escape literal, por ejemplo0x1B
.fuente
Python 3.5,
4033 bytes:( -7 bytes gracias a alguna aclaración de Mego )
Una función lambda anónima que toma entradas como argumentos posicionales en el formato
<function name>(String, Number, String)
y genera una cadena multilínea.¡Pruébelo en línea! (Ideona)
fuente
*f
y abandona latuple
llamada.TypeError: not enough arguments for format string
siempre lo ejecuto así.#
y el%
.#
y el lambda es necesario, o eso creo.JavaScript (ES6), 56 bytes
Además, para reír, aquí hay una respuesta que se formatea para mí:
JavaScript (ES6), 68 bytes
Imprime el resultado de
f()
.fuente
(ES6)
. (¿Por qué Cᴏɴᴏʀ O'Bʀɪᴇɴ solo se molestó en cambiar la longitud?)C #,
4038 bytesC # lambda donde las entradas y salidas son cadenas.
C #, 59 bytes
Con manejo de una respuesta multilínea.
C #, 71 bytes
La solución de 38 bytes que se imprime
Pruébalos en línea
fuente
Mathematica, 40 bytes
Función anónima. Toma el idioma, el recuento de bytes y el programa como entrada e imprime el cuerpo en STDOUT.
fuente
Jolf,
2422 bytesNo hay mucho que explicar aquí.
¦
significa entrada interpolada.Pruébalo aquí! La salida para la entrada en el enlace es:
La entrada es como:
fuente
MATL ,
2827 bytes1 byte guardado gracias a la sugerencia de @ NinjaBearMoneky
Pruébalo en línea!
El bloque de código debe estar en una sola línea.
Explicación
fuente
Lisp común, 57 bytes
Además, por diversión, aquí debajo hay un fragmento de código que imprime un encabezado por sí mismo.
Lisp común, 146 bytes
fuente
Ruby, 63 bytes
Pruébelo en línea: http://codepad.org/EIn0Gw9M
fuente
hashmap , 29 bytes.
(Escribí esa publicación con el programa, pero tuve que escapar \ n a \\ n)
Explicación:
fuente
CJam ,
2623 bytes¡Gracias a @NinjaBearMonkey por eliminar 3 bytes!
El bloque de código debe estar en una sola línea.
Pruébalo en línea!
Explicación
fuente
'#_Sl',Sl" bytes"N_S4*l
Pyke, 25 bytes
Pruébalo aquí!
O
Pyke, 0 bytes
Pruébalo aquí! - Haga clic en el botón Copiar respuesta;)
EDITAR : es solo una característica del sitio web, es una trampa (o al menos lo consideraría así) porque nunca analiza un AST y el programa web probablemente no se considera parte del idioma debido a que no interactúa mucho con el idioma (aunque ejecuta el intérprete de Pyke)
fuente
Perl 5, 35 bytes
Un programa completo, toma la entrada como argumentos de línea de comandos en orden inverso. Requiere
-M5.01
, que es gratis.fuente
Emacs Lisp, 97 bytes
Además, dado que a veces puede ser difícil escapar de las comillas y otras cosas, un ejemplo de uso que copia la cadena en el portapapeles. (Marcar región y usar
M-:
)Emacs Lisp, 184 bytes
fuente