Para este desafío, debe crear un programa que tome un número entero x
y genere su fuente x
muchas veces.
Reglas
Esto es codegolf, el objetivo es jugar golf en su programa para tener la menor cantidad de bytes
Si envía una función, la función debe tomar
x
como parámetro y devolver o imprimir la totalidad de su códigox
muchas veces a STDOUT. El cuerpo de la función tampoco debe estar vacío.Si envía una lambda, no es necesario que la asigne a una variable
Se aplican restricciones de escapatoria estándar .
Los programas vacíos están prohibidos.
Su programa solo tiene que funcionar cuando
x
es un entero entero mayor o igual a 0Su programa tampoco puede leer directamente ninguna parte de su código fuente
x
ser0
o podemos restringirlo a enteros positivos?x
tal vez cualquier entero entero mayor o igual a 0Respuestas:
Python 2 , 50 bytes
Tenga en cuenta la coma final y la nueva línea.
Pruébalo en línea!
fuente
sys.stdout.write("2")
después.Japt , 14 bytes
Pruébalo en línea!
Explicación
fuente
RProgN 2 , 8 bytes
¡El RProgN2 Loop quine funciona particularmente bien para esto!
Pruébalo en línea!
fuente
Mathematica,
4033 bytes¡Gracias a lanlock4 por guardar 7 bytes!
Función pura que toma un argumento entero no negativo.
ToString[#0]
es la forma estándar de Mathematica de acceder a la definición de la función pura actual;StringRepeat[..., #1]
concatena (entrada) copias de esa cadena juntas. Por ejemplo,rendimientos:
fuente
StringJoin @@ Table[ToString[#0], #1] & [2]
me da un error.Table::itform: Argument 2 at position 2 does not have the correct form for an iterator.
Table[x,5]
volverá{x,x,x,x,x}
en Mathematica 10.2 y versiones posteriores, pero en Mathematica 10.1 da ese error (se esperaTable[x,{5}]
).StringJoin @@ Table
conStringRepeat
.V , 11 bytes
Pruébalo en línea!
Esta es una modificación extremadamente trivial de la V quine extensible estándar . Simplemente lo usamos
À
para ejecutarlo arg1 veces.fuente
dc , 31 bytes
Pruébalo en línea!
Explicación:
fuente
Python 2, 70 bytes
Esta solución funciona si
x=0
. Hay una nueva línea final.Pruébalo en línea
Python 2, 60 bytes (inválido)
Esto supone eso
x>=1
, pero el OP aclaró quex
puede ser cero. Hay una nueva línea final.Pruébalo en línea
fuente
Baja carga , 12 bytes
Pruébalo en línea!
Envío de funciones, porque Underload no tiene otra forma de tomar entrada. (El enlace TIO muestra el número 4 dado como entrada y agrega código para imprimir la salida resultante).
Esto es solo un constructor universal de quine
(a(:^)*):^
, más~^
("hacer una cantidad de copias igual al argumento").fuente
Japt , 14 bytes
Pruébalo en línea!
fuente
Jalea , 10 bytes
Pruébalo en línea!
Cómo funciona
fuente
Marca GNU , 49 bytes
Make unirá las copias por un solo espacio, así que tengo que incluir el carácter de espacio adicional al final y eliminarlo con un espacio
strip
intermedio para cumplir fielmente el requisito.fuente
$0
en Make funciones no es lo mismo que en shells. Es el nombre de la variable a la que se llama la función. Ver gnu.org/savannah-checkouts/gnu/make/manual/html_node/…call
está haciendo es sustituir$0
y$1
con parámetros reales: es una simple interpolación de cadenas, al igual que Python%
.Pyth, 17 bytes
Pruébalo en línea!
Extensión trivial a la
jN*2]"jN*2]
quine bastante conocida , pero probablemente se pueda jugar golffuente
Betaload , 203 bytes
Nuevas líneas agregadas para mayor claridad:
Me di la restricción de que debe leer desde STDIN en lugar de desde la parte superior de la pila como lo haría normalmente una respuesta de baja carga. También utilicé la entrada decimal correcta, que constituye la mayor parte del código.
Explicación:
Envuelvo el programa en un quine-wrapper:
(a(:^)*
y):^
. Esto significa que todo el código dentro del contenedor de quine tendrá el código fuente del programa en la parte inferior de la pila.Para convertir dígitos en un número normal de la Iglesia, utilizo la técnica de reemplazar cada dígito con el código para multiplicar por 10 y agregar ese dígito:
Aquí hay mucha repetición, así que empaquételo en un subprograma que tomará un número de la Iglesia de la parte superior de la pila y úselo para construir la "cadena de dígitos":
Puse esto en un nuevo entorno para que se pueda acceder rápidamente:
Ahora puedo crear el código de reemplazo para
R
.R
usa los elementos superiores de la pila para formar una tabla de búsqueda para reemplazar una cadena de STDIN con código Betaload. Funciona así:Sin embargo, podemos usar el subprograma que acabamos de hacer para generar los segmentos de código:
Cuando
R
se ejecuta, transformará la entrada en una serie de subprogramas que construyen un número de Iglesia. Cuando se ejecuta este subprograma, crea ese número de Iglesia en el siguiente elemento de la pila (0, que se colocó anteriormente). Esto significa que, despuésR^
, el valor superior en la pila será el número de la Iglesia. Luego,^
una vez más, aplicamos el número de la Iglesia al elemento final en la pila (el código fuente del programa) para obtener la respuesta.Dato curioso: he tenido el MD para esta presentación durante varios meses. Lo guardé después de haber malinterpretado una pregunta (que parece que ya no puedo encontrar). Tuve que desenterrarlo de mi Papelera de reciclaje para publicarlo aquí.
fuente
05AB1E , 23 bytes
Pruébalo en línea!
fuente
Python 2 , 41 bytes
Pruébalo en línea!
¿Tiene una salida un poco hacky usar
input
en lugar deprint
, ya queprint
tiene un bicho raro que implica la impresión de una nueva línea cuando no se supone que ... . Sale con un error EOF.Explicación:
fuente
05AB1E ,
2725 bytesPruébalo en línea!
fuente
Pyth, 13 bytes
Banco de pruebas
El estándar Pyth quine más dos
*
para la repetición.fuente
Perl, 48 bytes
\47
es el escape octal para una comilla simple ('
). Se interpreta entre comillas dobles ("
), pero no entre comillas simples.fuente
Javascript ES6,
2737 bytesEditar
+10 bytes si
f=
también se debe mostrarfuente
f=
?toString
la función.f.toString()
of
es lo mismo pero no mostrará el nombre de la funciónf
esa manera se refiere a su propia fuente.CJam ,
2012 bytes8 bytes guardados gracias a Martin Ender
Pruébalo en línea!
Explicacion
fuente
PHP, 194 bytes
Pruébalo en línea!
No es nada golfístico, como suelen ser las b64 quines.
fuente
Go ,
257254bytesEsto me duele
Pruébalo en línea!
fuente
Microscript II, 22 bytes:
Microscript II, 20 bytes (pero técnicamente inválido ya que accede al código fuente de un bloque de código):
fuente
C,
144116 bytesfuente
Python 3, 69 bytes
fuente
C # (compilador interactivo de Visual C #) , 115 bytes
Pruébalo en línea!
fuente
05AB1E , 17 bytes
La modificación de la forma predeterminada quine
0"D34çý"D34çý
añadiendo×?
.Pruébalo en línea.
Explicación:
fuente