En este desafío, debe escribir un programa o función, que toma una cadena como entrada y genera uno de los dos valores posibles. Llamaremos a uno de estos valores verdadero y uno falso . No necesitan ser verdaderos o falsos . Para que una respuesta sea válida, debe cumplir con cuatro criterios adicionales
Cuando pasa su programa a sí mismo, genera el valor verdadero .
Si pasa su programa como entrada a cualquier respuesta anterior, debería generar la salida verdadera (del programa al que está pasando).
Si pasa cualquier respuesta anterior a su respuesta como entrada, debería generar la salida falsa (de su programa).
Debe haber un número infinito de cadenas que evalúen el resultado verdadero en todas las respuestas del desafío (incluida su nueva respuesta).
Lo que esto hará es que lentamente construirá una cadena de respuestas, cada una de las cuales puede determinar si otros programas en la cadena vienen antes o después.
El objetivo de este desafío es crear una lista de restricciones de origen que se apliquen a las respuestas sucesivas, haciendo que cada una sea más desafiante que la anterior.
Ejemplo
Una cadena (escrita en Haskell) podría comenzar:
f _ = True
Como no hay programas más antiguos, los criterios no se aplican a esta respuesta, solo necesita generar uno de los dos valores posibles, en este caso siempre genera True
.
Después de esto podría ser la respuesta:
f x=or$zipWith(==)x$tail x
Lo que afirma que hay un personaje dos veces seguidas en algún lugar de la cadena. La primera respuesta no tiene esta propiedad mientras que la segunda sí ( ==
). Por lo tanto, esta es una próxima respuesta válida.
Reglas especiales
Puede usar el idioma que desee (que tenga una implementación disponible gratuitamente) tantas veces como lo desee.
Si fue la última persona en responder, debe esperar al menos 7 días antes de publicar una nueva respuesta.
Es posible que su programa no lea su propia fuente.
Dado que la cuarta regla es extremadamente difícil de verificar si hay funciones criptográficas involucradas, tales funciones no están permitidas.
Criterio de puntuación
Cada vez que agregue una respuesta obtendrá tantos puntos como su lugar en la cadena. Por ejemplo, la quinta respuesta le daría 5 puntos al escritor. El objetivo es obtener tantos puntos como puedas. La última respuesta obtendrá su respuesta -∞ puntos. Esto probablemente será más divertido si intentas maximizar tu propio puntaje en lugar de "ganar" el desafío. No aceptaré una respuesta.
Como esto es encadenamiento de respuestas, es posible que desee ordenar por más antiguo
fuente
Respuestas:
14. Conjunto X86 (gcc 6.3), 324 bytes
Pruébalo en ideone!
Nota: este se devuelve un error de ejecución debido a que el código de salida no es cero. Ejecutar esto en el editor de ideone mostrará todos los resultados estándar, independientemente de cómo concluya el programa.
"->Hi, Retina!"
"Bye Retina!"
Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.Para futuras respuestas:
.
.->
.Hi, Retina!
."
.fuente
a
. Este programa contiene una
.9. Retina , 16 bytes
Pruébalo en línea!
Si desea probar su propio programa, simplemente agréguelo al campo de entrada, separado por dos saltos de línea. (Si su programa contiene dos saltos de línea, deberá cambiar el separador entre todos los programas y en el encabezado TIO).
Satisface:
.
e
a
>
personaje->
.Hi, Retina!
.Lo siento, pero me obligaste a rellenar hasta la longitud 16 ...
Sin requisitos redundantes:
.
->
.Hi, Retina!
.Explicación
Comenzar con
.
está bien, solo significa que suprimimos la salida implícita de Retina (siempre que la primera línea tenga una configuración, pero no quería un programa de dos líneas). Eso significa que necesitamos una salida explícita, pero la opción para eso es>
, así que estamos de suerte. El-
puede ir delante porque no hace nada.Ahora podemos acceder al programa en sí. Lo más simple es hacer coincidir una cadena literal. Está garantizado que aparecerá en nuestro programa, podemos asegurarnos fácilmente de que no sea parte de ningún programa existente y, como resultado, nos da un número. Sin embargo, podría devolver un número mayor que 1 (por lo tanto, más de dos valores diferentes).
0
Evitamos esto con el límite -que solo mira la primera coincidencia y cuenta que si existe. Por lo tanto,0
garantiza que la salida sea única0
o1
(dependiendo de si la entrada contiene la cadena literal).En cuanto a la cadena literal ... bueno, aún necesitamos incluir una
e
y unaa
... y necesitamos que la cadena tenga al menos 11 caracteres, para que coincidamos con los requisitos de longitud (llegar a un cuadrado par).Hi, Retina!
pasa a satisfacer esos requisitos.fuente
13. Perl 5 , 64 bytes
Pruébalo en línea!
Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.Resumen para futuras respuestas:
.
.->
.Hi, Retina!
."
.Script de verificación Ruby
fuente
a
. Este programa contiene una
.25, octava , 196 bytes
Nuevo requisito: para evitar la discusión de tabulación versus espacios, las pestañas ya no se pueden usar para sangrar. Cada línea todavía necesita una pestaña, pero no puede ser el primer carácter de la línea.
¡Verifique todos los programas en línea!
Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
y el punto de código del segundo carácter es menor que 60.Henry Jams?
como una subcadena continua.~
.C
Para futuras respuestas:
.
, y también lo es el 21 carácter (regla palindrómica)."
, y también lo es el duodécimo carácter (regla palindrómica).',1;6
y tabulación).~
.->
,Hi, Retina!
yHenry Jams?
.|
,+
yC
..
y el 2"
en la primera línea, y el!
enHi, Retina!
. Esos caracteres no se pueden usar en ningún otro lugar, además de no usarlos#$[\]
.Explicación:
En realidad, fue un poco difícil mantener esto en 196 bytes, ya que hay muchos bytes que ahora son obligatorios en cada línea.
La primera línea es simplemente un escalar que no se emite, seguido de un comentario. La segunda línea es una función anónima que toma una cadena
x
como entrada y realiza las siguientes operaciones:Es una suerte que la operación de cortocircuito
&&
tenga prioridad&
, y eso1&&find
no requiere paréntesis. De lo contrario, no lograría jugar golf hasta 196 bytes.fuente
5. Python 3 , 64 bytes
Pruébalo en línea! Comprueba si la longitud de la entrada es un cuadrado perfecto.
Esto se había actualizado cuando 18 respuestas estaban presentes para admitir entradas multilínea.
La actualización no hace daño a la cadena.
Satisface:
.
e
fuente
11. JavaScript (ES6), 36 bytes
Pruébalo en línea!
Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.Para futuras respuestas:
.
.->
.Hi, Retina!
."
.fuente
23, Literate Haskell , 196 bytes
Nuevo requisito: la sangría es excelente, por lo que cada línea debe contener al menos un carácter de tabulación.
Pruébalo en línea!
Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
y el punto de código del segundo carácter es menor que 60.Henry Jams?
como una subcadena continua.~
.C
Para futuras respuestas:
.
, y también lo es el 21 carácter (regla palindrómica)."
, y también lo es el duodécimo carácter (regla palindrómica).',1;6
y tabulación).~
.->
.Hi, Retina!
yHenry Jams?
.|
,+
yC
..
y el 2"
en la primera línea, y el!
enHi, Retina!
. Esos caracteres no se pueden usar en ningún otro lugar, además de no usarlos#$[\]
.fuente
27. GolfScript , 144 bytes
Pruébalo en línea!
Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
y el punto de código del segundo carácter es menor que 60.Henry Jams?
como una subcadena continua.~
.C
Para futuras respuestas:
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(puede completar los ␣s).',16;
, o una pestaña, o uno de\x04\x0e\x13\x18\x1d
.->
,Hi, Retina!
yHenry Jams?
.|
,+
yC
.!".#$[\]
están prohibidos excepto cuando sea necesario:!
enHi, Retina!
y los dos.
y dos"
en la primera línea están permitidos.tab
, (lo que sea) ,~
.fuente
12. V , 36 bytes
Pruébalo en línea!
Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.Para futuras respuestas:
.
.->
.Hi, Retina!
."
.fuente
21. Alphuck , 676 bytes
Sorprendentemente, la mayor parte del código no es relleno.
Pruébalo en línea!
Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
y el punto de código del segundo carácter es menor que 60.Henry Jams?
como una subcadena continua.~
.Para futuras respuestas:
.
, y también lo es el 21 carácter (regla palindrómica)."
, y también lo es el duodécimo carácter (regla palindrómica).',1;6
y tabulación).~
.->
.Hi, Retina!
yHenry Jams?
.|
y+
..
y el 2"
en la primera línea, y el!
enHi, Retina!
. Esos caracteres no se pueden usar en ningún otro lugar, además de no usarlos#$[\]
.fuente
26. Brainfuck auto modificable (SMBF), 256 bytes
El penúltimo carácter debe ser una pestaña.
Imprime
\x00
para la verdad y salidas\x00\x01
para falsey. Siempre termina con un error debido a un soporte incomparable. Esto evita que cualquier entrada se ejecute dinámicamente.Este programa solo funciona en el intérprete de Python . NO FUNCIONA EN TIO. Esto se debe a que el intérprete de Python EOF es NUL.
Para usar el intérprete de Python, pegue este código en la línea donde
data
está configurado. Esto tenía que hacerse, porque TIO no tiene una manera fácil de escribir o ingresar bytes NUL, por lo que todavía uso Ideone. Luego descomentesys.stdin = MySTDIN("<[.<]")
y reemplace la entrada personalizada con cualquier entrada con la que esté probando.Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
y el punto de código del segundo carácter es menor que 60.Henry Jams?
como una subcadena continua.~
.C
Para futuras respuestas:
.
, y también lo es el 21 carácter (regla palindrómica)."
, y también lo es el duodécimo carácter (regla palindrómica).',1;6
y tabulación).~
.->
,Hi, Retina!
yHenry Jams?
.|
,+
yC
..
y el 2"
en la primera línea, y el!
enHi, Retina!
. Esos caracteres no se pueden usar en ningún otro lugar, además de no usarlos#$[\]
.fuente
28. Haskell alfabetizado , 256 bytes
Pruébalo en línea!
Test Driver
Satisface
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
y el punto de código del segundo carácter es menor que 60.Henry Jams?
como una subcadena continua.~
.C
>
en el código y las llaves angulares deben estar equilibradasPara futuras respuestas:
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(puede completar los ␣s).',16;
, o una pestaña, o uno de\x04\x0e\x13\x18\x1d
.->
,Hi, Retina!
yHenry Jams?
.|
,+
yC
.!".
están prohibidos excepto cuando sea necesario:!
enHi, Retina!
y los dos.
y dos"
en la primera línea están permitidos.#$[\]
puede no aparecer en el programa.tab
, (lo que sea) ,~
.fuente
1
multa cuando descomento esa línea (aunque podría usar una; echo
como no hay nueva línea en la salida)29. PHP con
-r
256 bytesNo poder usarlo
$
hizo que esto fuera bastante complicado, en mi solución original no entendí la regla, pero creo que ahora tengo todo cubierto. He usado caracteres de alto byte~
yeval
para evitar la falta de variables decentes para PHP. Estuve a punto de lograr el número mínimo de puntos de código únicos 96, pero pensé que eso podría dificultar un poco la tarea de algunos idiomas.Aquí hay un volcado hexadecimal reversible para verificación también.
Pruébalo en línea!
Conductor de prueba
Satisface
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
y el punto de código del segundo carácter es menor que 60.Henry Jams?
como una subcadena continua.~
.C
>
en el código y las llaves angulares deben estar equilibradas.Para futuras respuestas:
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(puede completar los ␣s).',16;
, o una pestaña, o uno de\x04\x0e\x13\x18\x1d
.->
,Hi, Retina!
yHenry Jams?
.|
,+
yC
.!".
están prohibidos excepto cuando sea necesario:!
enHi, Retina!
y los dos.
y dos"
en la primera línea están permitidos.#$[\]
puede no aparecer en el programa.tab
, (lo que sea) ,~
.fuente
30. > <> con
-v 0 -v 0
, 324 bytes1
es verdad, la cadena vacía es falseyPruébalo en línea!
Satisface
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
y el punto de código del segundo carácter es menor que 60.Henry Jams?
como una subcadena continua.~
.C
>
en el código y las llaves angulares deben estar equilibradas.Para futuras respuestas:
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(puede completar los ␣s).',16;
, o una pestaña, o uno de\x04\x0e\x13\x18\x1d
.->
,Hi, Retina!
yHenry Jams?
.|
,+
yC
.!".
están prohibidos excepto cuando sea necesario:!
enHi, Retina!
y los dos.
y dos"
en la primera línea están permitidos.#$[\]
puede no aparecer en el programa.tab
, (lo que sea) ,~
.fuente
1. Añadir ++ , 7 bytes
Pruébalo en línea!
También podría agregar Add ++ antes de que las cosas empiecen a ponerse difíciles. Esto es simplemente una traducción del primer ejemplo a Add ++.
D,f,@,1
define una función que, sin importar el argumento dado, devuelve1
.fuente
4. Apilado , 10 bytes
Pruébalo en línea!
Comprueba si la duración del programa es uniforme. Función anónima que devuelve
1
para entradas "verdaderas" y0
para entradas "falsas".Satisface:
.
e
fuente
f out
con lo que desea probar. Envuelto en comillas simples, escape una comilla doble duplicándolo24, SNOBOL4 (CSNOBOL4) , 256 bytes
Pruébalo en línea!
Imprime
1
para la verdad y no produce nada para Falsey.Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
y el punto de código del segundo carácter es menor que 60.Henry Jams?
como una subcadena continua.~
.C
Para futuras respuestas:
.
, y también lo es el 21 carácter (regla palindrómica)."
, y también lo es el duodécimo carácter (regla palindrómica).',1;6
y tabulación).~
.->
,Hi, Retina!
yHenry Jams?
.|
,+
yC
..
y el 2"
en la primera línea, y el!
enHi, Retina!
. Esos caracteres no se pueden usar en ningún otro lugar, además de no usarlos#$[\]
.fuente
2. Triangularidad , 17 bytes.
Pruébalo en línea!
Comprueba si el primer carácter es un punto (
.
).fuente
.3
o similar funcionaría8. R , 64 bytes
Pruébalo en línea!
Satisface:
.
e
a
>
personaje->
en una de sus líneas.fuente
10. Somme , 64 bytes
Pruébalo en línea!
¡Verifíquelo en línea!
Satisface:
.
e
a
>
personaje->
.Hi, Retina!
.Para futuras respuestas:
.
->
.Hi, Retina!
.fuente
7. Susurros , 66 bytes.
Pruébalo en línea!
Salidas ya sea
True
oFalse
. Tenga en cuenta la nueva línea final.Satisface:
.
e
a
>
personajefuente
∈
es un carácter de varios bytes, y creo que el envío de Python está contando bytes.3. Jalea , 5 bytes
Pruébalo en línea!
Comprueba si la entrada contiene un
e
carácter. Cambió de”
ae
porque eso parecía injusto para los idiomas sin ese carácter. Y, para verificar, aquí hay un hexdump:Satisface:
.
e
fuente
18. Python 3 , 144 bytes
Pruébalo en línea!
Salidas
True
si la entrada tiene al menos 28 líneas de largo, de loFalse
contrario.Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.|
.+
.Para futuras respuestas:
.
.->
.Hi, Retina!
."
décimo carácter es un , y también lo es el duodécimo carácter (regla palindrómica).?
.|
.+
.fuente
16: Quarterstaff , 64
1 es verdad
Pruébalo en línea!
la sangría no hace nada, por cierto.
Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.|
Para futuras respuestas:
.
.->
.Hi, Retina!
."
décimo carácter es un , y también lo es el duodécimo carácter (regla palindrómica).?
.|
fuente
a
, esto se debe a la forma en que pyth toma la entrada. Parece que el OP cometió un error al escribir o analizar su propio código. Dos respuestas anteriores también tienen este problema.15. Python 3, 64 bytes
Pruébalo en línea!
Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.Para futuras respuestas:
.
.->
.Hi, Retina!
."
.?
.fuente
31. Octava , 324 bytes
Nuevo requisito: todos los ASCII imprimibles que no estén prohibidos previamente deben formar parte del código. La lista completa es la siguiente:
!"%&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~
.Pruébalo en línea!
e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
y el punto de código del segundo carácter es menor que 60.Henry Jams?
como una subcadena continua.~
.C
>
en el código y las llaves angulares deben estar equilibradas.!"%&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~
Para futuras respuestas:
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(puede completar los ␣s).',16;
, o una pestaña, o uno de\x04\x0e\x13\x18\x1d
.->
,Hi, Retina!
yHenry Jams?
.!".
están prohibidos excepto cuando sea necesario:!
enHi, Retina!
y los dos.
y dos"
en la primera línea están permitidos.#$[\]
puede no aparecer en el programa.tab
, (lo que sea) ,~
.!"%&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~
.fuente
6. Pyth , 16 bytes
Pruébalo aquí!
Comprueba si la entrada contiene un
a
. Salidas ya sea:[True, True, True, True, True, True, True, True, True, True, True, True, True]
para la verdado
[False, False, False, False, False, False, False, False, False, False, False, False, False]
por falsedadSatisface:
.
e
a
fuente
a
está en la primera línea. Al menos 2 respuestas son incorrectas porque eso no coincide con lo que dice el texto de esta respuesta (y las personas no están probando sus respuestas).20. Jalea , 100 bytes
Este código verifica si o no
Henry Jams?
. Vuelve1
por la verdad,0
por la falsedad.Pruébalo en línea!
Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
y el punto de código del segundo carácter es menor que 60.Henry Jams?
como una subcadena continua.Para futuras respuestas:
.
, y también lo es el 21 carácter (regla palindrómica).->
.Hi, Retina!
."
décimo carácter es un , y también lo es el duodécimo carácter (regla palindrómica).?
.|
.+
.!"#$.[\]
..
y el 2"
en la primera línea, y el!
enHi, Retina!
. Esos caracteres no se pueden usar en ningún otro lugar, además de no usarlos#$[\]
.Henry Jams?
como una subcadena continua.fuente
22, octava , 100 bytes
Resumen ejecutivo: ahora debe haber una mayúscula
C
en el código.Pruébalo en línea!
Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
y el punto de código del segundo carácter es menor que 60.Henry Jams?
como una subcadena continua.~
.C
Para futuras respuestas:
.
, y también lo es el 21 carácter (regla palindrómica)."
, y también lo es el duodécimo carácter (regla palindrómica).',1;6
y tabulación).~
.->
.Hi, Retina!
yHenry Jams?
.|
,+
yC
..
y el 2"
en la primera línea, y el!
enHi, Retina!
. Esos caracteres no se pueden usar en ningún otro lugar, además de no usarlos#$[\]
.fuente
19, octava , 196 bytes
Nota: hice una edición en el código para corregir un error. El único cambio fue incluir la regla del palíndromo. Esto evita un falso positivo para la respuesta 10.
La mayoría de los requisitos hasta ahora se pueden eludir fácilmente mediante comentarios y cadenas suprimidas, lo que hace que sea trivial agregar respuestas. Pensé que lo haría un poco más difícil al no permitir algunos personajes.
Pruébalo en línea!
Satisface:
.
.e
.a
.>
personaje.->
.Hi, Retina!
."
.?
.|
.+
.!"#$.[\]
y el punto de código del segundo carácter es menor que 60.Para futuras respuestas:
.
, y también lo es el 21 carácter (regla palindrómica).->
.Hi, Retina!
."
décimo carácter es un , y también lo es el duodécimo carácter (regla palindrómica).?
.|
.+
.!"#$.[\]
..
y el 2"
en la primera línea, y el!
enHi, Retina!
. Esos caracteres no se pueden usar en ningún otro lugar, además de no usarlos#$[\]
.fuente
This will probably be more fun if you try to maximize your own score rather than "win" the challenge.
.
antes de recibir otra respuesta? dado que la primera línea es palíndromo, deja solo 3 puntos, lo cual es casi imposible en la mayoría de las langostas verbosas. también 5"
y `` hace que sea casi imposible crear cadenas multilínea