Genere una plantilla de descuento para su publicación

19

Su tarea es simple: escriba un programa (o función) que no reciba entradas y produzca algo como esto:

## *name*, *length* bytes
    *code*

¿Dónde *name*está el nombre del idioma que está utilizando, *length*es el número de bytes en su código y *code*es el código fuente de su programa? Si *code*contiene varias líneas, tiene cuatro espacios antes de cada línea.

Aquí hay una implementación de ejemplo de 124 bytes en Python 3:

s = "## Python 3, 124 bytes{2}    s = {1}{0}{1}{2}print(s.format(s,chr(34),chr(10)))"
print(s.format(s,chr(34),chr(10)))

El resultado es:

## Python 3, 124 bytes
    s = "## Python 3, 124 bytes{2}    s = {1}{0}{1}{2}print(s.format(s,chr(34),chr(10)))"
    print(s.format(s,chr(34),chr(10)))

Que en Markdown es:

Python 3, 124 bytes

s = "## Python 3, 124 bytes{2}    s = {1}{0}{1}{2}print(s.format(s,chr(34),chr(10)))"
print(s.format(s,chr(34),chr(10)))

Este es el , por lo que gana la respuesta más corta (en bytes).

Fruta Esolanging
fuente
3
Estoy bastante seguro de que este es un dup, pero no puedo encontrar el viejo ...
Dada
Relacionado
Adnan el
1
Yo diría que esto es lo suficientemente diferente de eso porque está generando uno para sí mismo. La idea es similar, pero debe escribir una quine para esta.
Esolanging Fruit
¿Deberíamos asumir reglas estándar de quine (por ejemplo, no abrir su propio código y leerlo)?
Gabriel Benamy
@GabrielBenamy Sí.
Esolanging Fruit

Respuestas:

8

RProgN 2, 28 Bytes

«"  %s"F"#RProgN 2, 28 Bytes"
Un taco
fuente
2
Como es, este no es un contendiente serio y está sujeto a eliminación. Por favor golf tu respuesta.
Dennis
1
@Dennis Golfed.
ATaco
2
¡Agradable! El punto después del recuento de bytes no parece ser obligatorio, pero debe haber cuatro espacios (o una pestaña) antes del código.
Dennis
5

Baja carga, 48 bytes

(#Underload, 48 bytes
)(~:S(    ):S*aSaS(:^)S):^

fuente
La publicación es exactamente como la produce el código. La quine es capaz de cargar (coloque la carga después de la S final), por lo que es una quine verdadera según una definición ampliamente utilizada, pero usa una evaluación de cadena (dicho esto, la evaluación de cadena es la única forma de hacer un bucle en Underload ; es bastante fundamental para el lenguaje).
Después de una discusión en Underload quines en el chat, decidimos que esto también es un quine según las otras definiciones ampliamente utilizadas; la :^al final del programa está codificado por el :^un poco antes, y por lo tanto una parte del programa codifica una parte diferente.
2
Se puede discutir i n por carga insuficiente, quines? (Cool!:aSS)Cool!:aSS
CalculatorFeline
1
@CalculatorFeline Desafortunadamente, eso no funciona debido a (!).
Esolanging Fruit
2

Python 2, 58 bytes

_='## Python 2, 58 bytes\n    _=%r;print _%%_';print _%_
Erik el Outgolfer
fuente
El contenido de esta publicación es exactamente como lo imprime el código.
Erik the Outgolfer
1

reticular, 58 bytes

"'34'c: 4*91+c:s:e:t:y:b: 85: :,:r:a:l:u:c:i:t:e:r: :#dqO;

Pruébalo en línea!

Explicación: :cempuja la cadena de un solo carácter c. Esto construye la cadena "## reticular, 58 bytes", hacia atrás carácter por carácter, invierte la pila y Oemite todo, incluida la cadena capturada por la cita inicial.

Conor O'Brien
fuente
1

CJam, 33 bytes

{"## CJam, 33 bytes"N@S4*\"_~"}_~

Funciona mucho como la respuesta de baja carga.

Seguimiento de pila ( Nrepresenta \n)

{"## CJam, 33 bytes"N@S4*\"_~"}
{"## CJam, 33 bytes"N@S4*\"_~"} {"## CJam, 33 bytes"N@S4*\"_~"}
{"## CJam, 33 bytes"N@S4*\"_~"} "## CJam, 33 bytes"
{"## CJam, 33 bytes"N@S4*\"_~"} "## CJam, 33 bytes" N
"## CJam, 33 bytes" N {"## CJam, 33 bytes"N@S4*\"_~"}
"## CJam, 33 bytes" N {"## CJam, 33 bytes"N@S4*\"_~"} " "
"## CJam, 33 bytes" N {"## CJam, 33 bytes"N@S4*\"_~"} " " 4
"## CJam, 33 bytes" N {"## CJam, 33 bytes"N@S4*\"_~"} "    "
"## CJam, 33 bytes" N "    " {"## CJam, 33 bytes"N@S4*\"_~"}
"## CJam, 33 bytes" N "    " {"## CJam, 33 bytes"N@S4*\"_~"} "_~"
<implicit output>
Fruta Esolanging
fuente
1

V, 25 bytes

ñi#V, 25 bytes<esc>o´ Ñ<esc>~"qpx

(Esto no se cuenta en el descuento generado, porque me gusta proporcionar explicaciones para mi código: P)

Aquí hay un hexdump, ya que el código fuente contiene caracteres no imprimibles / no ASCII:

00000000: f169 2356 2c20 3235 2062 7974 6573 1b6f  .i#V, 25 bytes.o
00000010: b420 d11b 7e22 7170 78                   . ..~"qpx

Esta respuesta es solo una modificación trivial de la quine V extensible estándar .

Explicación:

ñ                                   " Run the following code one time, storing it in
                                    " register 'q'
 i                                  "   Enter insert mode
  #V, 25 bytes<esc>                 "   And insert the header
                   o                "   Open up a newline, and enter insert mode again
                    ´ Ñ             "   Enter four spaces, then a 'Ñ' character.
                                    "   (The reason we insert it uppercase, is because
                                    "   lowercase would end the loop now)
                       <esc>        "   Return to normal mode
                            ~       "   Toggle the case of the char under the cursor ('Ñ')
                             "qp    "   Paste the contents of register 'q' (this is the
                                    "   same as the entire program minus the initial 'ñ',
                                    "   followed by a 'ÿ' character because V is weird)
                                x   "   Delete the last character (the ÿ)
DJMcMayhem
fuente
1

JS, 50 49 27 30 bytes

f=_=>`#JS, 30 bytes\n    f=`+f

Intentalo

f=_=>`#JS, 30 bytes\n    f=`+f
console.log(f())

Lanudo
fuente