Su objetivo es crear un programa que se imprima indefinidamente, con una nueva línea después de cada uno. Por lo tanto, si su programa es de una sola línea, se repetirá en cada línea de la salida.
Ejemplo
Programa:
A
Salida:
A
A
A
...
Reglas
- Debe ser un programa completo, no un fragmento o función.
- El programa debería repetirse para siempre sin desbordamiento de pila o errores de límite de recursión.
- La salida es stdout o la alternativa más cercana.
- No se acepta entrada de programa.
- Las lagunas estándar no están permitidas, como abrir el archivo del programa o acceder a un recurso externo. Los programas vacíos no están permitidos como un vacío legal estándar.
- Si el código de su programa termina con una nueva línea final, esto no cuenta como la nueva línea necesaria entre las líneas, y debe imprimir otra.
- codegolf - ¡El código más corto gana!

while(1)println(your_code);Respuestas:
Fisión, 7 bytes
Una modificación bastante simple de la quine de fisión más corta que he encontrado hasta ahora : simplemente estoy usando la no destructiva en
!lugar deOy agregué unaNpara nueva línea.En resumen, así es como funciona: el flujo de control comienza en el
Rcon un átomo a la derecha."alterna el modo de cadena, lo que significa todo hasta que"se imprima el siguiente : en este caso'!+!NR. Eso deja la"y la nueva línea para imprimir.'!establece la masa del átomo en 33, la+incrementa a 34 (el código de caracteres de") e!imprime la cita.Nimprime una nueva línea yRahora no funciona en este caso, por lo que el ciclo comienza de nuevo.La siguiente solución de 7 bytes también funciona:
fuente
> <> , 16 bytes
La tradicional> <> quine usa demasiados
os, así que usamos un bucle para imprimir. Antes de cada salto, presionamos 5 y 0 (las coordenadas de hacia dónde saltar), después de lo cual saltamos.si todavía hay algo para imprimir o aparecen los dos valores superiores~~.(Volví a la versión 16 ya que olvidé la regla de desbordamiento de pila).
fuente
"ar00go50l2)?.[, ¿verdad?d3*ya queglee su propio código fuenteCJam, 13 bytes
El intérprete en línea no imprime nada antes de que finalice el programa, por lo que tendrá que probar esto en el intérprete de Java.
Explicación
Finalmente, una quine CJam generalizada que no termina en
_~.Esto simplemente empuja un bloque.
_gduplica el bloque y lo ejecuta repetidamente mientras la parte superior de la pila es verdadera (descartando la condición).Ahora dentro del bloque, la otra copia del bloque todavía está en la pila. Lo duplicamos e imprimimos con
_oy luego imprimimos_gseguido de una nueva línea (la nueva línea adicional requerida entre las líneas) con"_g\n"o. Finalmente, empujamos a1a la pila para que se repita el ciclo, porque desafortunadamente, los bloques no son verdaderos (o falsos) en CJam.fuente
Pitón 2, 39
No es una tarea muy interesante en Python, ya que es trivial agregar el ciclo while a una quine normal.
fuente
Perl 5.10+,
4037 byteso (también 37 bytes)
Invocar con el indicador de línea de comando
-M5.010o-E, por ejemploGracias a Ilmari Karonen por eliminar 3 bytes de mi solución original, que fue:
Esto, así como las soluciones más cortas de 37 bytes anteriores, son variaciones simples de la siguiente frase, que vi por primera vez en una de las otras publicaciones de Ilmari :
Como todo lo que agregué en mi solución original fue un
whilebucle, realmente merece la mayor parte del crédito. :-)fuente
$_=q{say"\$_=q{$_};eval"while 1};evalo$_=q{{say"\$_=q{$_};eval";redo}};evalsería unos pocos bytes más cortos. ($_=q{say"\$_=q{$_};eval";eval};evalsería aún más corto aún, pero sospecho que eventualmente se quedará sin pila).printlugar desay).Brainf *** auto modificable (SMBF) , 14 bytes
La nueva línea final
\ndebe ser una nueva línea literal, Unix, (código ASCII 10).Explicación:
El código mueve el puntero al extremo izquierdo de su código fuente, luego lo imprime todo, incluida la nueva línea (dos veces b / c de la regla). El ciclo continúa.
fuente
\r?\nes una nueva línea y es el código ASCII 10, por lo que un volcado hexadecimal del código fuente tendría el valor0Apara ese byte. code.cside.com/3rdpage/us/newLine.html\ngeneralmente cuenta como 2 caracteres y 2 bytes en su código. Lo escribí de esta manera para facilitar la lectura, ya que el formato no funciona bien para mostrar una línea en blanco al final de mi código fuente. Y entonces tuve que especificar que era UN byte, no dos.\nsiempre es un solo carácter, llamado salto de línea . Un salto de línea , sin embargo, es una secuencia dependiente de la plataforma de bytes./un "Solidus", y no conozco a nadie que lo haga. "Newline" comienza con unn, y ese es el carácter de escape, así que así lo llamo. Está más cerca del "avance de línea" que del "retorno de carro".PowerShell, 143 bytes
Basado del Código Rosetta PowerShell Quine , estoy bastante seguro de que este no es el más corto posible. El formato de reemplazo de cadenas en PowerShell es difícil para esto, porque los mismos delimitadores para dónde colocar los reemplazos
{}también delimitan los bloques de códigowhile{}, por lo que tenemos que usar la[char]conversión, que hincha el código un montón.fuente
Baja carga, 25 bytes
La primera vez que probé algo como esto y no estoy seguro si sigue todas las reglas, ya que se trata de un par de líneas. La nueva línea fue un poco dolorosa.
fuente
Befunge ,
3020 bytesUna variación de una popular quine befunge que imprime una nueva línea y aparece -1 en la pila si termina la línea.
Desafortunadamente, Befunge se vuelve detallado cuando hace cosas en una línea. Traté de eliminar todos los launchpads (
#) que pude, pero tuve que dejar algunos para omitir ciertos comandos (como,).Cambios:
30-20 -> cambié la base quine a una personalizada que hice que usa la entrada de cadena. De esta manera, la ramificación es mucho más fácil.
Antiguo:
No creo que esto sea óptimo, pero es aceptable por ahora.
fuente
98+2/: <, + 55, + 2g1_ #!, #: <"-1g0:+5<>:#,_1"K, 30 bytes
fuente
R, 34 bytes
invocar desde la línea de comando de la siguiente manera:
fuente
> <>,
3129 bytesUna simple modificación de la tradicional > <> quine .
Para ejecutarlo, péguelo aquí , haga clic en 'Enviar', luego 'Iniciar' (ejecutar sin animación no funciona). Siéntase libre de aumentar la velocidad de ejecución.
fuente
"ar00gc0.0+feooooooooooooooo|es dos bytes más corto.Python 2, 48 bytes
fuente
GolfScript, 16 bytes
Esto terminó pareciéndose mucho a la entrada de Martin Büttner en CJam . Una característica interesante es que, como resulta, la forma más corta de agregar
".do"al bloque cuando se imprime es asignarlo al terminador de línean. (Por supuesto, también debemos incluir una nueva línea real en la cadena, para reemplazar la quennormalmente contiene). La misma cadena (siendo sincera en GolfScript) también se deja en la pila para que eldobucle salte, asegurando que el bucle corre por siempre.fuente
BASH, 76 bytes
Simplemente no pude resistirme, especialmente con PowerShell aquí :)
El espacio en blanco es importante para una copia EXACTA.
fuente
Javascript (ES6), 64
Alternativamente (también 64)
fuente
arguments.calleeno existe y arroja un error.!lugar de encerrar los paréntesis y poner la ejecución de la función después del bucle for para evitar la necesidad del cuerpo de punto y coma del bucle que ahorraría (creo) 4 bytesMicroscript , 22 bytes
Sobre la base de la quine del artículo de Esolangs:
"fCqxah"fCqxah. Explota el hecho de que el lenguaje aplica automáticamente llaves de cierre según sea necesario, sin lo cual esto sería dos bytes más largos.fuente
Lote, 10 (+ 4 para la longitud del nombre del archivo)
No estoy seguro si esto califica por dos razones:
El código (para un programa llamado q.bat):
fuente
echo on&&%0aunque me da miedo intentarlo.echo on&&%0no funciona.%0se muestra como expandido en la salida, y Windows (7, 32 bit, ejecutándose en una VM) termina todo el proceso bastante rápido..batparteCeilán ,
210208 bytesPor supuesto, esto no ganará nada ...
Original:
shared void u(){value q="\"\"\"";value t="""shared void u(){value q="\"\"\"";value t=""";value b="""while(true){print(t+q+t+q+";value b="+q+b+q+";"+b);}}""";while(true){print(t+q+t+q+";value b="+q+b+q+";"+b);}}Modifiqué mi Quine de hace dos días agregando el
while(true){...}bucle, por lo que vengo de los 185 bytes del Quine simple a 210 (ya no necesito el nuevo carácter de línea final). Pero luego descubrí que unwhile(1<2){...}bucle es incluso dos bytes más corto:shared void u(){value q="\"\"\"";value t="""shared void u(){value q="\"\"\"";value t=""";value b="""while(1<2){print(t+q+t+q+";value b="+q+b+q+";"+b);}}""";while(1<2){print(t+q+t+q+";value b="+q+b+q+";"+b);}}(Ceilán no tiene un
for(;;)bucle como Java, y las llaves también son necesarias para este bucle).fuente
PowerShell,
132107bytesBasado en Rosetta Quine (igual que @AdmBorkBork) aunque no utiliza el formato para el reemplazo de la cadena ... ¿tal vez cambiar a un bucle for y usar el formato sería lo mejor?
Estoy seguro de que si AdmBorkBork regresara, lo superarían mucho: P
EDITAR Descubrí el bucle for y los reemplazos, todo gracias a mi predecesor :)
Viejo intento:
fuente
Ruby,
4139 bytesUna modificación de una de las quines de Ruby encontradas aquí .
fuente
Java 10, 194 bytes
Explicación:
Pruébelo en línea (agota el tiempo de espera después de 60 segundos).
quine -parte:
scontiene el código fuente sin formato.%sse utiliza para ingresar esta cadena en sí misma con els.format(...).%c,%1$cy34se usan para formatear las comillas dobles.s.format(s,34,s)lo pone todo juntoParte del desafío:
for(;;)se usa para recorrer indefinidamente.System.out.println(...)se utiliza para imprimir con una nueva línea al finalfuente
Funky , 29 bytes
Pruébalo en línea!
fuente
RProgN 2 , 7 bytes
Pruébalo en línea!
fuente
Jalea , 14 bytes
Pruébalo en línea!
fuente
Pyth, 11 bytes
Pruébalo aquí!
fuente
Brachylog , 16 bytes
No puedes probarlo en línea , pero he verificado que funciona en mi instalación.
Brachylog , 18 bytes
Pruébalo en línea!
Adaptado de la versión alternativa de este quine , con un truco de retroceso que había ideado inicialmente para bogosort de todas las cosas. Gasta dos bytes
~nporqueẉ(el medio habitual para imprimir con una nueva línea final) tiene algunos problemas extraños con la codificación de caracteres en TIO, y una nueva línea real insertada en el literal de cadena se imprime~kcomo\n.Dado que
w₁toma la entrada como una lista[string to be formatted, formatting arguments], envolver una cadena en una lista ygluego concatenarla con ella mismajpermite formatearla consigo misma. Y dado que no se proporciona ninguna entrada al programa, la variable de entrada que está implícitamente presente al comienzo del programa puede tomar cualquier valor, por lo que puede restringirse a una de las infinitas listas que contienen"∋~kgjw₁⊥~n"como elemento, creando un solo punto de elección al que se debe realizar un seguimiento cuando, después de imprimir su origen, el programa llega⊥.fuente
Python 3.6,
4843 bytes.-5 bytes gracias a @Jo King
fuente
%rpara ahorrar al escapar de esos's. 43 bytesGol> <> , 10 bytes
Pruébalo en línea!
Esto probablemente se puede jugar más golf
fuente