Escriba un programa que genere su propio código fuente cuando se ejecute, y nada más. Parece fácil, ¿verdad?
El problema es que cuando se invierte el código fuente, su programa debe mostrar "¡Hola, mundo!" exactamente, sin las comillas.
Este es el código de golf, por lo que gana el conteo de bytes más bajo.
Editar : Su quine debe ser una quine adecuada.
code-golf
quine
source-layout
hello-world
ericw31415
fuente
fuente
Respuestas:
Y, 19 bytes
U
captura una cadenaU
al principio hasta queU
se cumpla el siguiente , en este caso, el código fuente.p
imprime el artículo yx
es un enlace de terminación. Cuando se invierte, esto se ve así:Esto captura la cadena y la imprime con
p
, nuevamente terminando el programa conx
.Pruébalo aquí!
fuente
U
empujaU
implícitamente? ಠ_ಠU
comando es el "comando de captura de enlace de cadena". No está hecho para quining, pero eso no me impedirá usarlo para quining. : PU...
solo codificaU...
.p
bit hizo la salida, que era parte de la codificación.p
yx
no contaría. Por ejemplo, la quine SMBF más corta todavía se considera una quine trampa, a pesar de que el código tiene que imprimirla. Sin embargo, podría valer la pena pedirle una aclaración a Martin.JavaScript (ES6),
4238 bytesInvertido
Explicación
Cuando se invierte, se convierte en una función anónima que devuelve la cadena
Hello, World!
.La expresión regular se
/\//g
convierte en un comentario cuando se invierte, lo que permite que el valor sintácticamente inválido se comente>=_=f
en el código invertido.fuente
=_=
.JavaScript (ES6), 71 bytes
Cómo funciona:
La línea 1 define la función
trela
que cuando se ejecuta genera el código fuente del programa. La línea 2 es una cadena no asignada, no hace nada. Las líneas 3 y 4 llamantrela
abusando de la sintaxis de cadena de plantilla.Invertido:
Cómo funciona:
La línea 1 es una cadena no asignada, no hace nada. Las líneas 2 y 3 abusan de la sintaxis de cadena de plantilla para imprimir
Hello, World!
. La línea 4 es un comentario.fuente
``
innecesario el vacío ?trela
función (que imprime el quine) en la versión de``
era el argumento. Frio.trela
por aquí ...> _>GolfScript, 33 bytes
Hacia adelante
Pruébalo en línea!
Hacia atrás
Pruébalo en línea!
fuente
GolfScript,
2928 bytesTiene una nueva línea final. Pruébalo aquí.
Invertido:
Pruébalo aquí.
fuente
RETORNO , 94 bytes
Invertido:
Try it here.
Salidas a STDOUT. Hasta que encuentre un mejor marco de trabajo, esto tendrá que hacer por ahora.
Explicación
Este contiene la cadena de quine. A la inversa, esto se empuja a la pila pero no se emite.
Esto empuja un carácter de presupuesto a la pila y genera el resultado dos veces hasta que no quede nada para generar. A la inversa, esto imprimirá los códigos de acceso que ya están en la pila.
Este muestra el elemento de la pila superior (al revés, esto haría aparecer un carácter espacial) y empuja una serie de códigos de carga a la pila (en el reverso, estos códigos de caracteres serían luego impresos por la serie de
,
's).fuente
Fisión 2, 42 bytes
Adaptación descarada de una excelente frase de @ MartinBüttner en esta respuesta
Pruébalo en línea
Y revertido
Pruébalo en línea
En la versión quine, el átomo comienza en el
R
encabezado de la derecha. Las"
aperturas modo que envuelve a la siguiente impresión"
(en sí misma). Esto imprime todo excepto el"
.'!+
pon el átomo en char"
.O
lo imprime y destruye el átomo que finaliza el programa.La versión inversa comienza en el
R
nuevo y para cada personaje enHello, World
establece el átomo y lo imprime!
sin destruir el átomo. Para el personaje final,!
la huellaO
destruye el átomo.fuente
Javascript ES6, 55 bytes
Muy simple, de verdad.
fuente
Python 2, 131 bytes
Adelante:
Marcha atrás:
La primera mitad es una línea de una línea, seguida de una
#
para formar un comentario que separa la primera mitad de la segunda mitad más simple.fuente
_='_=%r;print _%%_#"!dlroW ,olleH"tnirp';print _%_#"!dlroW ,olleH"tnirp
C, 108 bytes
fuente
Python 2, 70 bytes
fuente