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